正则表达式括号Javascript

时间:2018-02-11 20:37:38

标签: javascript regex

有人请解释一下为什么这会返回错误吗?

var regex = new RegExp('\([0-9]{3}\)[0-9]{3}-[0-9]{4}');
return regex.test('(555)555-5555');

我是否需要插入其他一些RegExp属性?

最好不要使用字符串,并且使用字符串或正则表达式文字有什么不同吗?

1 个答案:

答案 0 :(得分:1)

它返回false,因为在将其定义为字符串时需要转义反斜杠,如下所示:

var rePhoneNumber = new RegExp('\\([0-9]{3}\\)[0-9]{3}-[0-9]{4}');

但是,因为它是javascript,你可以做一个字面定义:

var rePhoneNumber = /\([0-9]{3}\)[0-9]{3}-[0-9]{4}/;
return rePhoneNumber.test('(555)555-5555');

现在它返回true,因为你不需要转义反斜杠

<小时/> 请在此处查看工作代码段:

var rePhoneNumber = /\([0-9]{3}\)[0-9]{3}-[0-9]{4}/;
console.log(rePhoneNumber.test('(555)555-5555'));

var rePhoneNumber2 = new RegExp('\\([0-9]{3}\\)[0-9]{3}-[0-9]{4}');
console.log(rePhoneNumber2.test('(555)555-5555'));