8.4 正则表达式RegExp
RegExp 对象表示正则表达式,它可以对字符串执行模式匹配,从而拆分,查找和替换字符串中匹配的子串。这些在第三章的String对象部分已经介绍了。具体正则表达式的规则可参考其他专门的书籍。此处只介绍跟JavaScript相关的部分。
8.4.1 声明
声明一个RegExp对象有两种方法。第一种使用new关键字,如下:
varpattern = new RegExp(“number\\d+”,”g”);
第二个参数为可选项,如果不需要对正则表达式特殊设定则可不添加。特殊设定比如g表示全局搜索,i表示忽略大小写等。在第一种方式中,由于string中反斜杠(\)有转义作用,所以需要添加双反斜杠来取消转义。
第二种是直接使用表达式,如下:
varpattern = /number\d+/;
其中开始和结束的斜杠(/)表示表达式的开始和结束。
8.4.2 常用属性
属性 | 描述 |
RegExp 对象是否具有标志 g。比如var pattern=new RegExp("\\d+");document.write(pattern.global);将在页面显示false。 | |
RegExp 对象是否具有标志 i。比如var pattern=/\d+/gi; document.write(pattern.ignoreCase);将在页面显示true。 | |
一个整数,标示开始下一次匹配的字符位置。例子见方法exec的例子中。 | |
RegExp 对象是否具有标志 m。 | |
正则表达式的源文本。 |
8.4.3 常用方法
方法 | 描述 |
编译正则表达式。 | |
检索字符串中指定的值。返回找到的值,并在结果中提供index属性表示其位置。比如 var regstring = "string123string1243";var pattern=/\d+/gi;var result; while ((result = pattern.exec(regstring))!=null){ document.write(result+"&"+result.index+"&"+pattern.lastIndex+"<br>");}将在页面中显示两行:123&6&9和1243&15&19。 | |
检索字符串中指定的值。返回 true 或 false。比如:var regstring = "string123string1243";var pattern=/\d+/g;document.write(pattern.test(regstring));将在页面显示true。 |