javascript - 如何为第一个字符和字符串的其余部分定义不同的正则表达式?

标签 javascript regex

我想验证并处理一个字符串,它应该是一个电话号码。对于第一个字符,接受数字和 +,对于其余字符,仅接受数字。

我有接受+和数字的解决方案,但仅限于整个字符串:

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/

相关文章:

javascript - 如何在只读 div 中显示闪烁的文本光标/插入符号

regex - Windows 批处理 : How remove all blank (or empty) lines

regex - 为什么我在 NLTK RegexpTokenizer() 中的正则表达式删除了 "is"和 "to"?

javascript - Sequelize PostgreSQL : query to see if string is within an array

javascript - 如何使用 MutationObserver 获取标签类型?

javascript - 调试 IE 崩溃

javascript - Promises .then(async()) 与 .then(function(){return async()})

python - 如何在 emacs 中进行特殊的正则表达式查找和替换

regex - Notepad++ 正则表达式从目录中的文件中删除最后 x 行

c# - Regex Replace 以协助 LINQ 中的 Orderby