Javascript-正则表达式常用字符集及方法

正则表达式修饰符修饰符 可以在全局搜索中不区分大小写)

i(ignoreCase)执行对大小写不敏感的匹配

g (global)     执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)

m(multiline) 执行多行匹配

正则表达式模式

方括号用于查找某个范围内的字符

[abc]     查找方括号之间的任何字符

[^abc]  查找任何不在方括号之间的字符

[0-9]     查找任何从 0 至 9 的数字

[A-Z]    查找任何从大写 A 到大写 Z 的字符

[a-z]     查找任何从小写 a 到小写 z 的字符

[A-z]     查找任何从大写 A 到小写 z 的字符,即匹配所有的英文字母(不区分大小写)

[adgk]   查找给定集合内的任何字符

[^adgk] 查找给定集合外的任何字符

(red|blue|green) 查找任何指定的选项

(x|y)     查找任何以 | 分隔的选项

元字符是拥有特殊含义的字符

uxxxx   查找以十六进制数 xxxx 规定的 Unicode 字符

.           查找单个字符,除了换行和行结束符之外的任意字符

       查找换行符

f         查找换页符

        查找回车符

        查找制表符

v        查找垂直制表符

(总结下面的这些元字符小写为查找是的情况,大写就为查找不是的情况)

         匹配单词边界

B         匹配非单词边界  

w        查找单词字符,即匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]

W        查找非单词字符,等价于[^A-Za-z0-9_]

d         查找数字,即匹配一个数字字符,等价于[0-9]

D        查找非数字字符,即除了数字之外的任何字符,等价于[^0-9]

s         查找空白字符

S        查找非空白字符

量词

n+       匹配任何包含至少一个 n 的字符串,即“ + ”  表示匹配前一项1次或多次,等价于{1,}

n-        匹配任何包含零个或多个 n 的字符串

n?        匹配任何包含零个或一个 n 的字符串,即“ ? ”  表示匹配前一项0次或1次,也就是前一项是可选的,等价于{0,1}

n*        匹配任何包含零个或多个n的字符串,即“ * ”  表示匹配前一项0次或多次,等价于{0,}

n{X}    匹配包含 X 个 n 的序列的字符串,即{n} 表示匹配前一项n次

n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串,即{n,m} 表示匹配前一项至少n次,但是不超过m次

n{X,}   匹配包含至少 X 个 n 的序列的字符串,即{n,} 表示匹配前一项n次,或多次

n$        匹配任何结尾为 n 的字符串," $ " 匹配字符串的结束

^n       匹配任何开头为 n 的字符串," ^ " 匹配字符串的开始

?=n      匹配任何其后紧接指定字符串 n 的字符串

?!n       匹配任何其后没有紧接指定字符串 n 的字符串

/.../       代表一段正则的开始和结束

转义字符方式

   反斜杠,用于将上述具有特殊含义的符号转义成普通符号,例如你需要匹配$美元符号,而不是行尾,你可以写成“ $ ”即可

RegExp 对象方法

exec      检索字符串中指定的值。返回找到的值,并确定其位置

用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。如:

 1 <script>
 2 var str="Hello world!";
 3 //查找"Hello"
 4 var patt=/Hello/g;
 5 var result=patt.exec(str);
 6 document.write("返回值: " +  result); 
 7 //查找 "W3Cschool"
 8 patt=/W3Cschool/g;
 9 result=patt.exec(str);
10 document.write("<br>返回值: " +  result);
11 </script>

这样子返回的在HTML输出的就是:

                                    返回值: Hello
                                    返回值: nul

------------------------------------------------------------------------------------

test       检索字符串中指定的值。返回 true 或 false

 1 <script>
 2 var str="Hello world!";
 3 //查找"Hello"
 4 var patt=/Hello/g;
 5 var result=patt.test(str);
 6 document.write("返回值: " +  result); 
 7 //查找 "W3Cschool"
 8 patt=/W3Cschool/g;
 9 result=patt.test(str);
10 document.write("<br>返回值: " +  result);
11 </script>

这样子返回的在HTML输出的就是:

                                    返回值: true
                                    返回值: false

------------------------------------------------------------------------------------

search   检索与正则表达式相匹配的值的位置,返回数字,如果没有找到则返回-1

如:

1 <p id="demo">单击显示查找的位置</p>
2 <button onclick="myFunction()">点我</button>
3 <script>
4 function myFunction(){
5     var str="Visit W3CSchool!"; 
6     var n=str.search("W3CSchool");
7     document.getElementById("demo").innerHTML=n;
8 }
9 </script>

像这样的返回值n=6

-----------------------------------------------------------------------------------

match    找到一个或多个正则表达式的匹配,返回找到的值

可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,如:

1 <p id="demo">单击按钮显示matches</p>
2 <button onclick="myFunction()">点我</button>
3 <script>
4 function myFunction(){
5     var str="The rain in SPAIN stays mainly in the plain"; 
6     var n=str.match(/ain/g);
7     document.getElementById("demo").innerHTML=n;
8 }
9 </script>

像这样的最终显示输出的就是 ain,ain,ain

----------------------------------------------------------------------------------

replace  替换与正则表达式匹配的子串

用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串,如:

 1 <p>单击按钮将段落中“Microsoft”替换成“W3CSchool”:</p>
 2 <p id="demo">Visit Microsoft!</p>
 3 <button onclick="myFunction()">点我</button>
 4 <script>
 5 function myFunction(){
 6     var str=document.getElementById("demo").innerHTML; 
 7     var n=str.replace("Microsoft","W3CSchool");
 8     document.getElementById("demo").innerHTML=n;
 9 }
10 </script>

这样子

Visit Microsoft!这个就会被改变为:Visit W3CSchool!

----------------------------------------------------------------------------------

split       把字符串分割为字符串数组

按照你所定义的方式将匹配的字符串分割成数组,如:

                                                           var str="How are you doing today?";
                                                           var n=str.split(" ");

这样返回的就是:[How,are,you,doing,today?]  按照所定义的空格将str里的值分割成了数组。

原文地址:https://www.cnblogs.com/leona-d/p/5848969.html