数字逗号和空格的正则表达式

regex for numbers comma and space

本文关键字:正则表达式 空格 数字      更新时间:2023-09-26

我有一个文本区域,用户可以在其中输入美国邮政编码,用逗号或(逗号和空格)分隔。

它可能像12345,45678, 89654

以下正则表达式正在工作,并且正在删除不允许的字符:

$object.val($object.val().replace(/[^'d', ]/g, ''));

我想增强它,以便

  1. 我总是应该在开头有 5 位数字
  2. 5位数字后,应有逗号或逗号和空格
  3. 逗号
  4. 或(逗号和空格)不应位于字符串的最末尾。它必须是末尾的 5 位数字。

这也需要解决复制粘贴问题。用户可以复制粘贴无效的邮政编码长度。

谢谢

使用此正则表达式: ^'d{5}(, ?'d{5})*$

它在开头指定 5 位数字:^'d{5}以及任意数量的其他逗号、空格和 5 位数字组合:(, ?'d{5})*

您可以使用:

var s='12345,45678, 12345';
var m = s.match(/^(?:'d{5},'s?)*'d{5}$/);
<html>
    <head>
        <title></title>
        <script type="text/javascript">
            function Validate(txt) {
                txt.value = txt.value.replace(/[^, 0-9]+/g, '');
            }
        </script>
    </head>
    <body>
        <form>
            <input type = "text" id ="txt" onkeyup = "Validate(this)" />
        </form>
    </body>
</html>