用正则表达式修剪电话号码

adr*_*anm 2 regex

可能是一个简单的正则表达式问题.

如何从电话号码中删除除+ +之外的所有非挖掘?

012-3456 => 0123456
+1(234)56789 => +123456789

Tim*_*ker 11

/(?<!^)\+|[^\d+]+//g
Run Code Online (Sandbox Code Playgroud)

将删除所有非数字并留下一个领先的+单独.请注意,前导空格将导致" +单独留下"位失败.在.NET语言中,这可以在正则表达式中使用,在其他语言中,您应该在将字符串传递给此正则表达式之前先删除空格.

说明:

(?<!^)\+:匹配a,+除非它在字符串的开头.(在.NET中,用于(?<!^\s*)\+允许引导空格).

| 要么

[^\d+]+:匹配任何既不是数字也不是数字的字符+.

之前(使用(?<!^\s*)\+|[^\d+]+):

+49 (123) 234 5678
  +1 (555) 234-5678
+7 (23) 45/6789+10
(0123) 345/5678, ext. 666
Run Code Online (Sandbox Code Playgroud)

后:

+491232345678
+15552345678
+72345678910
01233455678666
Run Code Online (Sandbox Code Playgroud)