JS正则表达式搜索电话号码模式

JS regex search for phone number pattern

本文关键字:模式 电话号码 搜索 正则表达式 JS      更新时间:2023-09-26

我正在编写测试,以检查字符串是否包含与典型美国电话号码模式匹配的模式。给我带来麻烦的特殊情况是:

function telephoneCheck(str) {
  if(/^|'D+'d{3}'D+'d{3}'D+'d{4}$/.test(str)) {return 0;}
  return 1;
}
console.log(telephoneCheck("(6505552368)"));

我特别的问题是:正则表达式中有''D+,末尾有$,为什么函数会为给定的参数返回0?我知道''D+会查找一个或多个非数字字符,$会查找字符串的末尾。由于数字之间没有非数字,末尾有一个闭合的paren,我期望regex.test(str)===false。

这就是redex字符串应该是的样子

/^'D*'d{3}'D+'d{3}'D+'d{4}$/