使用下面 jQuery 代码中的正则表达式,我可以将输入文本字段限制为仅接受 5 位数字,但它允许数字前后有更多的空格,而不仅仅是一个。我的意思是匹配位于字符串开头或前面最多有一个空格并且位于字符串末尾或后面最多有一个空格的 5 位数字。请帮助我改进我的正则表达式以满足我的要求。
jQuery("input:text[name='address_1[zip]']").change(function(e) {
if (!jQuery(this).val().match(/\b\d{5}\b/g)) {
alert("Please enter a valid zip code");
jQuery("input[name='address_1[zip]']").val("");
return false;
}
});
最佳答案
我可能建议在这里使用环视:
/(?<![ ]{2})\b\d{5}\b(?![ ]{2})/
此模式表示:
(?<![ ]{2}) assert that 2 (or more) spaces do NOT precede the ZIP code
\b\d{5}\b match a 5 digit ZIP code
(?![ ]{2}) assert that 2 (or more) spaces do not follow
这是一个demo表明该模式有效。
关于javascript - 一种正则表达式允许正好 5 位数字,数字前后有一个可选的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70299952/