【问题标题】:Javascript runtime error:Javascript 运行时错误:
【发布时间】:2012-04-03 16:40:42
【问题描述】:

我正在调用以下 JS 来验证英国邮政编码:

<script type="text/javascript">

    function jsre(theField) {
        var chk_postalcode = "^[A-Z0-9 ]*[A-Z][A-Z0-9 ]*\d[A-Z0-9 ]*$|^[A-Z0-9 ]*\d[A-Z0-9 ]*[A-Z][A-Z0-9 ]*$";
        var txtpostalcode = document.getElementById("txtPostCode");

        if (!chk_postalcode.test(txtpostalcode.value)) {
            alert("Valid");
        } else {
            alert("Invalid");
        }
    }
</script>

<asp:TextBox ID="txtPostCode" runat="server" onchange="jsre(this);"></asp:TextBox>

我得到运行时错误:

Error: Object doesn't support property or method 'test'

我得到了http://www.9lessons.info/2009/03/perfect-javascript-form-validation.html 的帮助来构建我的代码。

谁能帮助我如何使代码正常工作?

【问题讨论】:

    标签: javascript regex validation runtime-error


    【解决方案1】:

    chk_postalcode 仍然是 string,因此它没有 test() 方法。

    把它变成一个 RegExp 对象:

    var chk_postalcode = /^[A-Z0-9 ]*[A-Z][A-Z0-9 ]*\d[A-Z0-9 ]*$|^[A-Z0-9 ]*\d[A-Z0-9 ]*[A-Z][A-Z0-9 ]*$/;
    

    【讨论】:

      【解决方案2】:

      "^[A-Z0-9 ]<em>[A-Z][A-Z0-9 ]</em>\d[A-Z0-9 ]<em>$|^[A-Z0-9 ]</em>\d[A-Z0-9 ]<em>[A-Z][A-Z0-9 ]</em>$" 将其更改为 /^[A-Z0-9 ]<em>[A-Z][A-Z0-9 ]</em>\d[A-Z0-9 ]<em>$|^[A-Z0-9 ]</em>\d[A-Z0-9 ]<em>[A-Z][A-Z0-9 ]</em>$/。删除双引号并加上斜杠。

      【讨论】:

        【解决方案3】:

        应该是:

        
        //add slashes and remove quotes
        var chk_postalcode = /^[A-Z0-9 ]*[A-Z][A-Z0-9 ]*\d[A-Z0-9 ]*$|^[A-Z0-9 ]*\d[A-Z0-9 ]*[A-Z][A-Z0-9 ]*$/;
        

        【讨论】:

          【解决方案4】:

          试试

          var chk_postalcode = /^[A-Z0-9 ]*[A-Z][A-Z0-9 ]*\d[A-Z0-9 ]*$|^[A-Z0-9 ]*\d[A-Z0-9 ]*[A-Z][A-Z0-9 ]*$/;
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-02-17
            • 1970-01-01
            • 2016-06-15
            • 2013-07-12
            • 1970-01-01
            • 1970-01-01
            • 2014-10-02
            相关资源
            最近更新 更多