Javascript运行时错误:

Javascript runtime error:

本文关键字:运行时错误 Javascript      更新时间:2023-09-26

我正在调用以下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来构建我的代码。

有人能帮我如何让代码正常工作吗?

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 ]*$/;

"^[A-Z0-9 ][A-Z][A-Z0-9 ]'d[A-Z0-9 ]$|^[A-Z0-9 ]'d[A-Z0-9 ][A-Z][A-Z0-9 ]$"将其更改为/^[A-Z0-9 ][A-Z][A-Z0-9 ]'d[A-Z0-9 ]$|^[A-Z0-9 ]'d[A-Z0-9 ][A-Z][A-Z0-9 ]$/。去掉双引号并加上斜线。

应该是:


//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 ]*$/;

尝试

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 ]*$/;