1

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

可能是 12345,45678, 89654

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

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

我想增强它,以便

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

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

谢谢

4

3 回答 3

2

使用这个正则表达式: ^\d{5}(, ?\d{5})*$

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

于 2013-09-27T14:55:57.567 回答
1

您可以使用:

var s='12345,45678, 12345';
var m = s.match(/^(?:\d{5},\s?)*\d{5}$/);
于 2013-09-27T14:57:14.267 回答
0
<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>
于 2016-05-11T11:37:22.177 回答