正则---让人喜欢让人忧(6)
正则表达式:
先补充几个元字符: \w 单词字符 。 \W非单词字符 。 \d数字 \D非数字 \b单词边界 \B非单词边界
[\u4E00-\u9FA5] 匹配简体中文
更多非英文语系字符范围请参考:http://www.cnblogs.com/yitian/archive/2008/11/14/1333569.html
RegExpObject 对象的方法
1.compile: a、脚本执行过程中,编译正则表达式;b、改变或重新编译正则表达式;
举个栗子:
RegExpObject.compile(regexp,modifier) //modifier "g" 用于全局匹配,"i" 用于区分大小写,"gi" 用于全局区分大小写的匹配。
2.exec : 找到了匹配的文本,返回数组元素,length属性, index属性和input属性;
找不到匹配文本,返回null
举个栗子:
var str = "Visit W3School, W3School is a place to study web technology"; var patt = new RegExp("W3School","g"); //全局的要复杂一些. 找到匹配的文本返回数组,否则返回null var result; log(patt.exec(str));
while ((result = patt.exec(str)) != null) { document.write(result); document.write("<br />"); document.write(patt.lastIndex); // 14 24 匹配文本最后一个字符的下一个位置 document.write("<br />"); //["W3School", index: 6, input: "Visit W3School, W3School is a place to study web technology."] //["W3School", index: 16, input: "Visit W3School, W3School is a place to study web technology."] }
//注意:当exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。
//重要事项:如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。
3.test : 如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。