我找到了以下解决方案,用于在每 4 个字符后添加破折号:
$('.number_to_format').keyup(function() {
var foo = $(this).val().split("-").join("");
if (foo.length > 0) {
foo = foo.match(new RegExp('.{1,4}', 'g')).join("-");
}
$(this).val(foo);
});
但是我有一个更难的问题需要解决,当我输入数字时,我的输入应该与此格式完全匹配:
99999999-9-99
因此自动在第 8 个和第 9 个字符后面添加破折号。
我已经尝试过 jQuery 屏蔽插件,但我想要没有插件的解决方案。
我应该如何扩展上面的正则表达式才能使其正常工作?谢谢
最佳答案
(输出将为 99999999-9-99)
<input type="text" id="data">
$(document).ready(function ()
$('#data').keyup(function () {
var x = $(this).val();
console.dir(x);
x = x.replace(/[^0-9]/gi, '');
if (x.length > 9) x = x.replace(/(\d{8})(\d)(\d+)/, '$1-$2-$3');
else if (x.length > 8) x = x.replace(/(\d{8})(\d+)/, '$1-$2');
else x = x;
$(this).val(x);
});
});
关于javascript - 如何扩展这个正则表达式以匹配这个掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061283/