正则表达式 - 仅匹配数字,不包括特殊字符 - 不起作用

时间:2016-05-24 04:38:04

标签: javascript regex replace

我正在尝试雷鬼,并试图从电话号码中删除括号,括号等特殊字符。我没有得到前三位数(我打算这么做),而是得到了这个[' 201',索引:0,输入:' 2014447777' ] 为什么会这样?

 function numbers(num){
 return num.replace(/[^0-9]/g, "").match(/\d\d\d/);

}
numbers("(347)4448888");

1 个答案:

答案 0 :(得分:3)

String#match返回

  

包含整个匹配结果和任何括号捕获的匹配结果的数组,如果没有匹配则为null。

要获得前三位数字,请使用

return num.replace(/\D+/g, '').match(/\d{3}/)[0];
                    ^^^               ^^^^^  ^^^   : Match all non-digits
                                      ^^^^^  ^^^   : Match three digits and returns digits from the array.