正则创建方式的区别
创建正则有两种方式:字面量方式创建和实例化方式创建
区别主要两个吧.
1.同时匹配数字
字面量:/\d/
实例化:new RegExp("\\d")
也就是多了一个转义,"\d"只是匹配"\d",如果想匹配数字的话,也就是转义下,"\\d",也就是\d其实是一种元字符
2.有变量的时候
很显然,字面量是无法匹配变量的,因为会把变量名本身当成匹配的,
var a = "ff"; /a/.test("ff"); // false /a/.test("a"); // true
但是实例化方式是阔以滴,因为中间是字符串的组成方式
var a = "ff"; var reg = new RegExp(a); reg.test("ff"); // true reg.test("a"); // false
两种创建方式在什么情境用呢?
我觉得,有变量的时候用实例化,其他情况用字面量