javascript - 一种正则表达式允许正好 5 位数字,数字前后有一个可选的空格?

标签 javascript regex

使用下面 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/

相关文章:

JavaScript RegEX 测试不工作

javascript - 我们不能在文件中编写和执行 JavaScript 代码并在控制台中查看输出吗?

javascript - 保存 SPA 字段时无法协调 CSS 样式和内容的动画

javascript - 如何像 Evernote clipper 那样检测文章的主要标签

javascript - 为什么我需要在 setTimeout 中使用匿名函数才能使此代码正常工作?

c# - 带条件重复的正则表达式

mysql - 在 MySQL 中的字符串末尾选择双字母与单字母

javascript - 将输入限制为在 IE 中使用大写字符的特定正则表达式

python - 使用 Beautifulsoup 在页面中查找特定字符串

javascript - 为什么不在 DOM 中的对象缺少 jQuery 中的 on 方法?