以下正则表达式:
x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, "-");
在每个输入的第三个字符之后添加破折号123456789
变成123-456-789
. 我试图使用这个正则表达式来格式化电话号码。问题出现在第 10 个字符上。于是进入1234567890
就变成了1-234-567-890
。
我将如何修改上述正则表达式以将具有 10 位数字的字符串转换为123-456-7890
. 我使用这个正则表达式,因为这发生在用户输入使用keyup事件时。
如果您知道更简单或更好的方法,请帮助我,用户输入时必须添加破折号。不允许使用其他字符。
笔记:
- 不能使用 Jquery Masked 输入插件(因为如果编辑中间字符,它的焦点就会混乱)