2016-01-21 21 views
0

我正在捕捉国际号码并运行正则表达式来替换人们喜欢放在数字之间的字符。正则表达式调用来自所有组交互的反向引用

我使用下面的正则表达式:

[+]([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

+0

为什么不直接替换的符号? ([DEMO](https://regex101.com/r/pT3cK9/3)) –

回答

0

正如评论所说,simples的清洁方式电话号码将是确定的不需要的字符列表,并用空格代替它们:

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