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

时间:2016-08-03 01:54:35

标签: javascript regex

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

Pattern ptyy = Pattern.compile("[^\\s|]+(?:\\|[^\\s|])+");
Matcher matcher_values = ptyy.matcher("this is a|b|c|d whater e|f|g|h and Az|09|23|A3 and 22|1212|12121|55555");
while (matcher_values.find()) {
    String line = matcher_values.group(0);
    System.out.println(line);
}

我的特殊问题是:在正则表达式中的\ D +和最后的$,为什么函数为给定的参数返回0?我明白\ D +会查找一个或多个非数字字符,而$会查找字符串的结尾。数字之间没有非数字,结尾处有一个关闭的数据,我期待regex.test(str)=== false。

1 个答案:

答案 0 :(得分:0)

这就是你的redex字符串应该是什么样的

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