知识专栏 | 专栏链接 |
---|---|
JavaScript知识专栏 | https://blog.csdn.net/xsl_hr/category_12024214.html?spm=1001.2014.3001.5482 |
有关JavaScript的相关知识可以前往JavaScript知识专栏查看复习!!
最近在对***前端的深入学习过程***中,再次接触到了正则表达式,以前写正则表达式基本都是一些常用的、可以直接从网上的案例中copy的,但是学习正则应该能够自己根据场景写出自己手搓的表达式。因此本文以正则表达式与正则匹配为主要内容,展开详细的讲解。
/a{1,3}/
不匹配 “cndy”,匹配 “candy,” 中的 “a”,“caandy,” 中的两个 “a”,匹配 “caaaaaaandy” 中的前面三个 “a”。/a{2}/
不匹配 “candy,” 中的 “a”,但是匹配 “caandy,” 中的两个 “a”,且匹配 “caaandy.” 中的前两个 “a”。/a{2,}/
不匹配 “candy” 中的 “a”,但是匹配 "caandy,"中的两个 “a”,且匹配 "caaandy"中的前两个 “a”,后两个 “a”。var patt=new RegExp(pattern,modifiers);
或者更简单的方式:
var patt=/pattern/modifiers;
注意:当使用构造函数创造正则对象时,需要常规的字符转义规则( 在前面加反斜杠 )。
比如,以下是等价的:
var re = new RegExp("\\w+");
var re = /\w+/;
var str = "lookup gungunxs";
var patt1 = /gungunxs/i;
document.write(str.match(patt1));
var str="Is gungunxs handsome or not";
var patt1=/un/g;
document.write(str.match(patt1));
var str="Is gungunxs handsome or not";
var patt1=/u/gi;
document.write(str.match(patt1));
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)
var str = 'gungunxs';
var patt1 = new RegExp('\\w', 'g'); // 有转义作为正则表达式处理
var patt2 = new RegExp('\w', 'g'); // 无转义作为字符串处理
var patt3 =/\w+/g; // 与 patt1 效果相同
document.write(patt1.test(str)) //输出 true
document.write("
")
document.write(patt2.test(str)) //输出 false
document.write("
")
document.write(patt3.test(str)) //输出 true
exec()
方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
下面的示例是从字符串中搜索字符 “e” :
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
以上就是关于 JS 正则匹配(RegExp) 的分享,相信看完这篇文章的小伙伴们一定能运用这些方法在项目开发中。本期文章中有非常多的表达式,对于这些表达式还是要多运用和实践,达到信手拈来的效果。