js中使用正则表达式碰到的问题

最近开始做angularjs2项目时碰到一个问题,就是同样是使用正则表达式,使用字面量定义和使用构造函数创建,在使用上是有区别的,例如如下代码:

const red=new RegExp('^\d+$');
const blue=/^\d+$/;
console.log(red.test(12));   //false
console.log(blue.test(12));   //true

因为在RegExp的构造函数中参数是字符串,所以需要对字符进行双重转义,所有元字符都必须要双重转义,上面的代码应该改为:
const red=new RegExp('^\\d+$');
另外,在ES5中规定使用正则表达式字面量和调用构造函数一样,每次都会创建RegExp实例。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容