正则括号Javascript

正则括号Javascript,javascript,regex,Javascript,Regex,有人能解释一下为什么这个返回值是假的吗 var regex = new RegExp('\([0-9]{3}\)[0-9]{3}-[0-9]{4}'); return regex.test('(555)555-5555'); 是否还有其他需要插入的RegExp属性 不使用字符串是否更好?使用字符串或正则表达式文字是否有任何区别?它返回false,因为在将其定义为字符串时需要转义反斜杠,如下所示: var rePhoneNumber = new RegExp('\\([0-9]{3}\\)[0-

有人能解释一下为什么这个返回值是假的吗

var regex = new RegExp('\([0-9]{3}\)[0-9]{3}-[0-9]{4}');
return regex.test('(555)555-5555');
是否还有其他需要插入的RegExp属性


不使用字符串是否更好?使用字符串或正则表达式文字是否有任何区别?

它返回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=newregexp('\\\([0-9]{3}\\)[0-9]{3}-[0-9]{4}');

console.log(rePhoneNumber2.test(‘(555)555-5555’)如何在字符串中执行正则表达式?只是为了curiosity@Jan怎么回事。。。。哦为什么我没有想到这一点?@some
some
可能很匆忙…@CaioCésarSilvaGomes添加了如何逃逸字符串的示例。