正则表达式调用所有组交互的反向引用

时间:2016-01-21 01:00:39

标签: javascript regex backreference

我正在捕捉国际号码并运行正则表达式来替换人们喜欢放在数字之间的字符。

我正在使用以下RegEx:

[+]([0-9]{1,3})(([\s\-\.\(\)]*)([0-9]*)([\s\-\.\(\)]*)){1,3}

它工作得很好但是当我使用重复的组时,它只捕获最后一次迭代。当我使用regex101网站调试我的正则表达式时,我看到:

  

重复捕获组仅捕获最后一次迭代。放一个   捕获重复组周围的组以捕获所有迭代

我想接受建议,但我不确定如何put a capturing group around the repeated group。请参阅:https://regex101.com/r/pT3cK9/1

1 个答案:

答案 0 :(得分:0)

正如评论中所述,清理电话号码的简单方法是定义不需要的字符列表,并用空格替换它们:

'+94 (666) 999-5555'.replace(/[ .()-]+/g, ' '); // +94 666 999 5555
'+42 555.123.4567'.replace(/[ .()-]+/g, ' ');   // +42 555 123 4567