【发布时间】:2013-05-16 22:21:49
【问题描述】:
以下正则表达式:
x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, "-");
在每个 第 3 个 字符之后添加破折号,因此输入的 123456789 变为 123-456-789。
我试图使用这个正则表达式来格式化电话号码。问题出现在第 10 个字符上。所以输入的1234567890变成了1-234-567-890。
如何修改上述正则表达式以将具有 10 位数字的字符串转换为 123-456-7890。我使用这个正则表达式是因为这发生在用户输入使用 keyup 事件时。
如果您知道更简单或更好的方法,请帮帮我,用户输入时必须添加破折号。不允许使用其他字符。
注意事项:
- 不能使用 Jquery Masked 输入插件(因为如果编辑中间字符,它的焦点会混乱)
【问题讨论】:
-
电话号码可以多长时间? 9 和 10 是我在这里看到的,但是您还需要考虑其他可能性吗?
标签: javascript jquery regex