从电话号码字符串中删除空格、括号、加号、连字符等特殊字符 [duplicate]

Remove special characters like space,bracket,plus symbol,hyphen from phone number string [duplicate]

提问人:Karan Nayyar 提问时间:10/13/2023 更新时间:10/13/2023 访问量:81

问:

我正在考虑以下情况,以从电话号码字符串中删除垃圾值或空格括号。

以下是我正在考虑的例子。

//Ignore Special char
phone = "+1-555-555-1234"
result = "15555551234"

phone = "1(800)555-0199"
result = "18005550199"

//Ignore Space
phone="555 555 1234"
result = "5555551234"


//If phone number contains spaces,parenthesis or some garbage character only consider digits.
phone = "9898871234567)"
result = "9898871234567"

//If + and parenthesis symbol is present
phone = "+11 111 111"
result = "11111111"

phone= "(22) 222-222"
result = "22222222"

//If hyphen is present
phone = "(22) 222-222"
result = "22222222"

我怎样才能使用正则表达式在javascript中轻松实现这一点?

JavaScript 正则表达式 字符串 替换 Rhino

评论

1赞 Daniel A. White 10/13/2023
你尝试过哪些正则表达式?
0赞 Nico Haase 10/13/2023
“忽略特殊字符” - 如果应该忽略它,为什么会将其从预期结果中删除?
0赞 mplungjan 10/13/2023
请访问帮助中心浏览以查看内容和如何询问。做一些研究,搜索SO上的相关主题;如果您遇到困难,请发布一个最小的可重现示例,注明输入和预期输出,最好是在 Stacksnippet
0赞 Bender110001 10/13/2023
function removeSpecialCharactersFromNumber(number) { return number.replace(/[()\s+\-]/g, ''); } 就可以了
0赞 Ryan Wilson 10/13/2023
number.replace(/[+-/(/)\s]/g, '');

答:

1赞 Steve Tomlin 10/13/2023 #1

const result = '11-11+11(33)'.replace(/\D/g, '');
// Remove any character that is NOT a number.
console.log(result) 

评论

0赞 Mark Baijens 10/13/2023
由于明显的重复,投了反对票。
0赞 Steve Tomlin 10/13/2023
@MarkBaijens尊重,上面提供的重复示例是通用的,并不特定于此用例。
0赞 Mark Baijens 10/13/2023
没有冒犯,但快速搜索会发现有很多特定的重复问题(正如这种通用问题所预期的那样)。以我在问题下的评论为例。
0赞 Steve Tomlin 10/13/2023
@MarkBaijens绝对的,但 op 不知道正则表达式,因此问题来了。有时,一个可行的例子就足以让他们走上进一步发现的道路。正则表达式在最好的开发人员中不是一种容易理解的语言
0赞 Mark Baijens 10/13/2023
OP 标记了这个问题,并要求提供一个正则表达式示例,该示例完美地提供了副本。回答这样的问题不会给社区和问答数据库增加任何内容,应该始终关闭(友好的评论引导OP找到答案)。regex