正则表达式在javascript中失败

val*_*lik 0 javascript regex validation

我在javascript中有以下正则表达式

var reg = new RegExp("^[(]?[2-9]\d{2}[)]?[\-. :]?[2-9]\d{2}[\-. :]?\d{4}$");
return this.optional(element) || (reg.test(value));
Run Code Online (Sandbox Code Playgroud)

在我的代码中,reg.test(value)即使在正确的值上也返回false:例如222 222 2222或222-222-2222.所有正则表达式测试人员(尤其是这个调用相同方法的测试人员)都表明正则表达式匹配表达式.可能是什么问题?

Dan*_*nte 7

试试这个:

var reg = /^[(]?[2-9]\d{2}[)]?[\-. :]?[2-9]\d{2}[\-. :]?\d{4}$/;
return this.optional(element) || (reg.test(value));
Run Code Online (Sandbox Code Playgroud)

或者:

var reg = new RegExp("^[(]?[2-9]\\d{2}[)]?[\\-. :]?[2-9]\\d{2}[\\-. :]?\\d{4}$");
return this.optional(element) || (reg.test(value));
Run Code Online (Sandbox Code Playgroud)