我目前正在尝试创建regex代码,以完成以下操作:
- 允许仅字符串中的第一个字符(第0个索引)为'+'符号或数字(0-9)。
- 不允许在字符串中的任何其他位置使用非数字值(0-9)。这意味着没有字母,符号或表情符号。
下面是一些字符串的例子,这些字符串可以用完美的解决方案来工作和通过:
+1234
1234
下面是一些字符串的例子,这些字符串不工作,并且不通过的完美解决方案:
abcd
!@#$
+abcd
+!@#$
+++++
+123+45
+ 12345
最接近的是/[^+][^\0-9]+/g -https://regex101.com/r/F8OAGU/1。你会注意到它能捕捉字母和一些符号,但不能连续捕捉多个“+”。
目前我的代码看起来像这样:
this.$emit(`phoneEvent`, phoneNumber.replace(/[^+][^\0-9]+/g, ""))
将感谢任何对解决方案的指导。:)
1条答案
按热度按时间ttp71kqs1#
^
在行首置位\+
匹配字符+?
匹配前一个标记0到1次[0-9]
+
匹配上一个标记一次到无限次$
在一行的末尾声明位置/g
全局修饰符,返回所有匹配项