2012-03-19 6 views
4

Я звоню следующий JS для проверки Великобритании почтового индекса:Javascript ошибка во время выполнения:

<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 к кадру моим код.

Может ли кто-нибудь помочь мне, как я могу заставить код работать?

ответ

3

"^[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 ]$/. Удалите двойные кавычки и поместите косую черту.

4

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

попробовать

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 ]*$/; 
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 ]*$/; 
Смежные вопросы