我想验证并处理一个字符串,它应该是一个电话号码。对于第一个字符,接受数字和 +,对于其余字符,仅接受数字。
我有接受+和数字的解决方案,但仅限于整个字符串:
console.log("asd242++asf43+234".replace(/[^+\d]/g, ""))
但是由于为第一个字符和其余字符定义不同的检查而受到困扰。
最佳答案
您可以使用以下内容:
([^+\d]|(?!^)\+)
它匹配除数字和 +
之外的所有内容,并且不匹配字符串开头的 +
!
所以你的测试日志将如下所示:
console.log("+asd242++asf43+234".replace(/([^+\d]|(?!^)\+)/g, ""))
(我在开头添加了一个 +
以表明它可以正确处理此问题!)
查看Demo这表明它符合您的所有情况!
关于javascript - 如何为第一个字符和字符串的其余部分定义不同的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54444065/