我的条件是:
if (/(.{4})/g.test(this.value)) this.value = this.value.replace(/(.{4})/g,'$1-');
这只适用于Mozilla。
这有什么不对吗?
我希望在四位数之后添加-
。例如:
1234567 - > 1234-567
答案 0 :(得分:2)
我的测试中似乎正在使用Chrome,Safari,Firefox。有一点需要注意的是,如果你最终得到四位数的偶数倍,那么你最后也会得到一个尾随短划线,所以你可能需要考虑一个负向前瞻来考虑字符串的结尾(假设它& #39;所有数字);并考虑使用\d
代替数字.
:
var value="123456789012";
if (/(\d{4})/g.test(value)) {
console.log(value.replace(/(\d{4})(?!$)/g,'$1-'));
}
// => "1234-5678-9012"
答案 1 :(得分:1)
我测试了下面的正则表达式here以及它在Firefox,Chrome和IE8中的工作情况。
'1234567'.replace(/(\d{4})/g,'$1-')
输出:
1234-567
您可以在regex101
上在线测试您的正则表达式答案 2 :(得分:0)
首先,您应该使用\ d来查找数字。 如果你仍然没有运气{},你可以使用" dumb方式":/(\ d \ d \ d \ d)/ g只是为了看看它是否有任何成功差