首页 > 技术文章 > 正则创建方式的区别

2han 2017-02-06 16:49 原文

创建正则有两种方式:字面量方式创建和实例化方式创建

区别主要两个吧.

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

 

两种创建方式在什么情境用呢?

我觉得,有变量的时候用实例化,其他情况用字面量

 

推荐阅读