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

时间:2013-09-27 14:52:32

标签: javascript regex

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

可能就像 12345,45678,89654

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

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

我想加强它,以便

  1. 我一开始应该有5位数字
  2. 5位数后,应该有逗号或逗号和空格
  3. 逗号或(逗号和空格)不应位于字符串的最后。最后必须是5位数字。
  4. 这也需要解决复制粘贴问题。用户可以复制邮政编码的粘贴无效长度。

    由于

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可以使用:

var s='12345,45678, 12345';
var m = s.match(/^(?:\d{5},\s?)*\d{5}$/);

答案 2 :(得分: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>