Javascript 无效的正则表达式:"/^[+;]?[0-9]{0,1}[-.]?\([0-9]{3})?[-.]?([0-9]{3})[-.]?([0-9]{4})$/gm;手稿

Javascript 无效的正则表达式:"/^[+;]?[0-9]{0,1}[-.]?\([0-9]{3})?[-.]?([0-9]{3})[-.]?([0-9]{4})$/gm;手稿,javascript,Javascript,我测试并复制了来自的正则表达式,但当我在函数中包含正则表达式时,我得到了无效的正则表达式://^[+]?[0-9]{0,1}[-.](?([0-9]{3}))?[-.]([0-9]{3})[-.]([0-9]{4})$/gm:无效的组错误 public-isPhoneValid(电话:字符串):布尔值{ 如果(!电话){ 返回true; const regExp=new regExp(“/^[+]?[0-9]{0,1}[-.]?\(([0-9]{3})\)?[-.]?([0-9]{3})[-.

我测试并复制了来自的正则表达式,但当我在函数中包含正则表达式时,我得到了无效的正则表达式://^[+]?[0-9]{0,1}[-.](?([0-9]{3}))?[-.]([0-9]{3})[-.]([0-9]{4})$/gm:无效的组错误

public-isPhoneValid(电话:字符串):布尔值{
如果(!电话){
返回true;
const regExp=new regExp(“/^[+]?[0-9]{0,1}[-.]?\(([0-9]{3})\)?[-.]?([0-9]{3})[-.]([0-9]{4})$/gm”);
返回regExp.test(电话);

}
正则表达式周围的引号将其视为字符串而不是正则表达式。删除它们应该可以做到这一点。您也可以同时删除“new RegExp()”构造函数

const regExp = /^[+]?[0-9]{0,1}[-. ]?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/gm;

正则表达式周围的引号将其视为字符串而不是正则表达式。删除它们应该可以做到这一点。您还可以同时删除“new RegExp()”构造函数

const regExp = /^[+]?[0-9]{0,1}[-. ]?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/gm;

您不需要如此复杂的语句-您只需复制粘贴带有“/”和“/”字符作为分隔符的正则表达式即可

 const regExp = /^[+]?[0-9]{0,1}[-. ]?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/gm;

您不需要如此复杂的语句-您只需复制粘贴带有“/”和“/”字符作为分隔符的正则表达式即可

 const regExp = /^[+]?[0-9]{0,1}[-. ]?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/gm;

你是在混合regex文本和RegExp构造函数吗?@Chris是对的,我认为你应该删除
新的RegExp(
你有两个左括号,但有一个右括号。你的条件不是封闭的。你是在混合regex文本和RegExp构造函数吗?@Chris是对的,我认为你应该删除
新的RegExp(“
您有两个左括号,但有一个右括号。您的条件不是封闭的。将正则表达式文本传递给正则表达式构造函数有什么意义?很好。编辑了答案。将正则表达式文本传递给正则表达式构造函数有什么意义?很好。编辑了答案。