JS 中创建正则表达式有两种写法:
// 第一种写法
var regExp = /hello/;
regExp.test('hello world'); // true
// 第二种写法
var regExp = new RegExp('hello');
regExp.test('hello world'); // true
本文要说明的是 RegExp 使用时要注意的问题,RegExp 构造函数中要传入一个字符串作为正则表达式主体,字符串就关系到特殊字符转义的问题,比如 '\'。举例如下:
// 错误示例
var regExp = new RegExp('A\d+');
regExp.test('A12'); // false
为什么此处是 false 呢?是因为 '\' 在字符串中有转义功能,一个 '\' 表示要转义紧随其后的字符。要在此处达到 '\' 的效果,需要连续输入两个 '\'。
// 正确示例
var regExp = new RegExp('A\\d+');
regExp.test('A12'); // true