JavaScript中正则表达式示例
【测试示例代码】
<html> <body> <input type="button" value="运行" onClick="toCheck1()" /> <input type="button" value="刷新" onClick="javascript:window.location.reload();"><br /> <input type="text" id="textId" /> <script type="text/javascript"> function toCheck(){ var str = "hiabc"; var reg = /hi/; var value = str.match(reg); document.getElementById("textId").value = value; } </script> </body> </html>
>>【修饰符】<<
01、【i】修饰符用于执行对大小写不敏感的匹配
示例:不区分大小写,查找abcde
单词:var str = "ABCde";
公式:var reg = /abcDE/i;
结果:ABCde
02、【g】修饰符用于执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
示例:对 "abc" 进行全局搜索
单词:var str = "abcABCabc";
公式:var reg = /abc/g;
结果:abc,abc
03、【m】修饰符用于执行多行匹配(只有当使用^和$模式才起作用,否则加不加入m都可以进行多行匹配)
示例:进行全局多行匹配abc(\n为换行)
单词:var str = "abc\nabcd\nabce";
公式:var reg = /^abc/gm;
结果:abc,abc,abc
>>【方括号】<<
01、【[]】查找方括号内任何指定的字符
示例:全局中查找字母a和B的内容
单词:var str = "abcABC";
公式:var reg = /[aB]/g;
结果:a,B
02、【[^]】查找任何不在方括号之间的字符
示例:全局中查找字母非a和B的内容
单词:var str = "abcABC";
公式:var reg = /[^aB]/g;
结果:b,c,A,C
03、【[0-9]】查找任何从 0 至 9 的数字(若为[0-2]则查找0-2的数字)
示例:全局中查找0-9的内容
单词:var str = "abc0ABC9";
公式:var reg = /[0-9]/g;
结果:0,9
04、【[a-z]】查找任何从小写 a 到小写 z 的字符(若为[a-b]则查找a-b的字符)
示例:全局中查找a-z的内容
单词:var str = "abc0ABC9";
公式:var reg = /[a-z]/g;
结果:a,b,c
05、【[A-Z]】查找任何从小写 A 到小写 Z 的字符(若为[A-B]则查找A-B的字符)
示例:全局中查找A-Z的内容
单词:var str = "abc0ABC9";
公式:var reg = /[A-Z]/g;
结果:A,B,C
06、【[A-z]】查找任何从小写 A 到小写 z 的字符(若为[A-a]则查找A-a的字符)
示例:全局中查找A-Z的内容
单词:var str = "abc0ABC9";
公式:var reg = /[A-z]/g;
结果:a,b,c,A,B,C
>>【元字符】<<
01、【.】查找单个字符(含特殊字符如空格井号,除了换行和行结束符)
示例:全局中查找 a任意一个字符b 的内容(任意一个字符含殊字符如空格井号)
单词:var str = "abc ABC abc a#c";
公式:var reg = /a.c/g;
结果:abc,abc,a#c
02、【\w】查找单词字符(不含特殊字符如空格井号,除了换行和行结束符)
示例:全局查找 a任意一个字符b 的内容(任意一个字符不含殊字符如空格井号)
单词:var str = "abc ABC abc a#c";
公式:var reg = /a\wc/g;
结果:abc,abc
03、【\W】查找非单词字符
示例:全局查找 非a任意一个字符b 的内容(任意一个字符不含殊字符如空格井号)
单词:var str = "abc ABC abc a#c";
公式:var reg = /a\Wc/g;
结果:a#c
04、【\d】查找数字
示例:全局查找 数字 的内容
单词:var str = "abc0ABC1abc2";
公式:var reg = /\d/g;
结果:0,1,2
05、【\D】查找非数字字符
示例:全局查找 非数字 的内容
单词:var str = "abc0ABC1abc2";
公式:var reg = /\D/g;
结果:a,b,c,A,B,C,a,b,c
06、【\s】查找空白字符(英文空格、中文全角空格、制表符(Tab)、换行符)
示例:全局查找 空白字符 的内容
单词:var str = "abc ABC abc#";
公式:var reg = /\s/g;
结果: ,
07、【\S】查找非空白字符
示例:全局查找 非空白字符 的内容
单词:var str = "abc ABC abc#";
公式:var reg = /\S/g;
结果:a,b,c,A,B,C,a,b,c,#
08、【\b】匹配单词边界(特殊字符如空格井号不算单词)
示例:全局查找 abc 的内容(特殊字符不算单词,等于特殊字符不存在)
单词:var str = "abc ABC abc#";
公式:var reg = /\babc\b/g;
结果:abc,abc
09、【\B】匹配非单词边界(特殊字符如空格井号不算单词)
示例:全局查找 单词不为abc结尾 的内容(特殊字符不算单词,等于特殊字符不存在)
单词:var str = "abcd ABC abc#";
公式:var reg = /abc\B/g;
结果:abc
10、【\n】查找换行符
示例:全局查找 换行符 的内容
单词:var str = "abc\nabcd\nabce";
公式:var reg = /\n/g;
结果:,
11、【\xxx】查找以八进制数 xxx 规定的字符
示例:全局查找 字符串中的八进制 127 (W)
单词:var str = "Hello World";
公式:var reg = /\127/g;
结果:W
12、【\xdd】查找以十六进制数 dd 规定的字符
示例:全局查找 字符串中的十六进制 57 (W)
单词:var str = "Hello World";
公式:var reg = /\x57/g;
结果:W
13、【\uxxxx】查找以十六进制数 xxxx 规定的 Unicode 字符
示例:全局查找 字符串中的十六进制 0057 (W)
单词:var str = "Hello World";
公式:var reg = /\u0057/g;
结果:W
14、【\o】查找 NUL 字符
15、【\f】查找换页符
16、【\r】查找回车符
17、【\t】查找制表符
18、【\v】查找垂直制表符
>>【量词】<<
01、【+】指定+前边的内容可以连续重复出现任意次(至少1次)
示例:全局查找 ab开头,1个以上为c 的内容
单词:var str = "aabc ABC abbc abcc";
公式:var reg = /abc+/g;
结果:abc,abcc
02、【*】指定*前边的内容可以连续重复出现任意次(含0次)
示例:全局查找 ab开头,0个以上为c 的内容
单词:var str = "aabc ABC abbc";
公式:var reg = /abc*/g;
结果:abc,ab
03、【?】指定*前边的内容可以连续重复出现0次或1次
示例:全局查找 ab开头,0个或1个为c 的内容
单词:var str = "aabc ABC abbc abcc";
公式:var reg = /abc?/g;
结果:abc,ab,abc
04、【{x}】指定{前面的字符重复的次数=x次
示例:全局查找 ab开头,2个为c 的内容
单词:var str = "aabc ABC abbc abcc";
公式:var reg = /abc{2}/g;
结果:abcc
05、【{x,y}】指定{前面的字符重复的次数x<=次数<=y
示例:全局查找 ab开头,>=2个并且<=4个c 的内容
单词:var str = "aabcc ABC abbc abccc";
公式:var reg = /abc{2,4}/g;
结果:abcc,abccc
06、【{x,}】指定{前面的字符重复的次数>=x次
示例:全局查找 ab开头,>=2个c 的内容
单词:var str = "aabcc ABC abbc abccc";
公式:var reg = /abc{2,}/g;
结果:abcc,abccc
07、【^】匹配字符串的开始
示例:全局查找 整个字符串开头为a 的内容
单词:var str = "aabcc ABC abbc abccc";
公式:var reg = /^a/g;
结果:a
08、【$】匹配字符串的结束
示例:全局查找 整个字符串结尾为c 的内容
单词:var str = "aabcc ABC abbc abccc";
公式:var reg = /c$/g;
结果:c
09、【?=x】匹配任何其后紧接指定字符串 x 的字符串
示例:全局查找 b其后紧跟cc的b 的内容
单词:var str = "aabcc ABC abbc abccc";
公式:var reg = /b(?=cc)/g;
结果:b,b
10、【?!x】匹配任何其后没紧接指定字符串 x 的字符串
示例:全局查找 b其后没有紧跟cc的b 的内容
单词:var str = "aabcc ABC abbc abccc";
公式:var reg = /b(?!cc)/g;
结果:b,b