什么是正则表达式?
var box = new RegExp('Box','ig');//new运算符创建,第二个参数是可选的模式修饰符
var box = /Box/ig;//字面量方式创建,第二个参数是可选的模式修饰符
1、利用RegExp类的两个方法:test()、exec();
var Box=new ('Box'); //用new运算符创建正则表达式,注意是否有修饰符 var str=' This is a box'; alert(Box.test(str));//因为“This is a box”里面不包含“Box”,所以返回false。 var Box=/Box/i;//用字面量方法创建爱你正则表达式,注意修饰符 var str=' This is a box'; alert(Box.test(str));//根据修饰符“i”可以知道,此正则表达式匹配的时候不区分大小写,又因为“This is a box”里面包含“Box”,所以返回true
var pattern = /box/i; //注意修饰符 var str = 'This is a Box!, This is a Box!'; alert(pattern.exec(str));//因为字符串中“This is a Box! This is a Box!”里面有“box”而且pattern不区分大小写,所以返回Box。
下面只举两个例子来说明用法:
var pattern = /box/ig; //在全局下不区分大小写 var str = 'This is a Box!,That is a Box too'; alert(str.search(pattern)); //从字符串的第一个字符为“0”数起,一个空格算一个字符,那么第一个出现pattern,也就是“box”的字符序号为10,所以返回值为10.
var pattern = / /ig; //以空格作为正则表达式,不区分大小写,作用域全局 var str = 'This is a Box!,That is a Box too'; alert(str.split(pattern));//将str变量所代表的字符串以空格分隔开组成数组,返回值为:[This,is,a,Box!,That,is,a,Box,too]以逗号隔开的数组。
元字符/元符号 |
匹配情况 |
. |
匹配除换行符外的任意字符 |
[a-z0-9] |
匹配括号中的字符集中的任意字符 |
[^a-z0-9] |
匹配任意不在括号中的字符集中的字符 |
\d |
匹配数字 |
\D |
匹配非数字,同[^0-9]相同 |
\w |
匹配字母和数字及_ |
\W |
匹配非字母和数字及_ |
元字符/元符号 |
匹配情况 |
\0 |
匹配 null 字符 |
\b |
匹配空格字符 |
\f |
匹配进纸字符 |
\n |
匹配换行符 |
\r |
匹配回车字符 |
\t |
匹配制表符 |
\s |
匹配空白字符、空格、制表符和换行符 |
\S |
匹配非空白字符 |
元字符/元符号 |
匹配情况 |
^ |
行首匹配 |
$ |
行尾匹配 |
\A |
只有匹配字符串开始处 |
\b |
匹配单词边界,词在[]内时无效 |
\B |
匹配非单词边界 |
\G |
匹配当前搜索的开始位置 |
\Z |
匹配字符串结束处或行尾 |
\z |
只匹配字符串结束处 |
元字符/元符号 |
匹配情况 |
x? |
匹配 0 个或 1 个 x |
x* |
匹配 0 个或任意多个 x |
x+ |
匹配至少一个 x |
(xyz)+ |
匹配至少一个(xyz) |
x{m,n} |
匹配最少 m 个、最多 n 个 x |
元字符/元符号 |
匹配情况 |
this|where|logo |
匹配 this 或 where 或 logo 中任意一字符类 |
(string) |
用于反向引用的分组 |
\1 或$1 |
匹配第一个分组中的内容 |
\2 或$2 |
匹配第二个分组中的内容 |
\3 或$3 |
匹配第三个分组中的内容 |
var pattern = /[1-9][0-9]{5}/; 共 6 位数字,第一位不能为 0 var str = '224000'; alert(pattern.test(str));
var pattern = /^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-9_\.\-]+)\.([a-zA-Z]{2,4})$/; var str = '[email protected]'; alert(pattern.test(str)); var pattern = /^([\w\.\-]+)@([\w\.\-]+)\.([\w]{2,4})$/; var str = '[email protected]'; alert(pattern.test(str));