我想在输入电话号码时替换无效字符
我想要的规则如下。
- 第一个字符可以是“+”
- 其余字符必须是数字 0-9
这就是我已经拥有的
phoneNumber.getValue().replace(/[^0-9,+]+/g, "");
这可以工作,但不完全
但是我可以在字符串中的任何位置有一个“+” 如果它不是第一个字符,我想删除它,现在有人该怎么做
谢谢 阿杰
请您参考如下方法:
假设您不想包含逗号(即结果应该只是十进制数字,前面带有可选的+
),那么这将做到这一点:
phoneNumber.getValue().replace(/(^\+)|\D+/g, '$1');
注释:
- 使用
\D
非十进制数字字符类简写。 (即\D
与:[^0-9]
相同。) - 利用这样一个事实:当捕获组不参与匹配时,仍然可以在替换字符串中引用它 - (将其替换为空字符串)。