2011-05-17 45 views
4

我想使用jQuery驗證郵政編碼字段,但它不起作用。jQuery郵政編碼驗證不起作用

這裏是我的代碼:

if (postcod.val().match ('~^([1-9]{1}[0-9]{3}\s[A-Z]{2})$~')){ 
     }else{ 
      postcod.addClass("needsfilled"); 
      postcod.val(postcoderror); 
     } 

這裏是HTML:

PostCode<br /><input id="postcod" type="text" value="" name="postcod" /> 

你能幫PLZ

+0

什麼是郵政編碼期望的語法?在美國,除非您使用擴展名,否則您可以檢查它是否爲數字,介於0和99999之間,長度爲5個字符。 – dtbarne 2011-05-17 07:47:58

回答

7

有幾個問題...

  • Regexs是而不是用JavaScript引用,除非需要通過其構造函數創建RegExp對象。在這種情況下,你不會。我只用它們,如果我需要連接外部字符串。雖然您可以將一個字符串傳遞給match(),並且它將被隱式轉換,但不建議通過RegExp文字。
  • 您需要使用/作爲正則表達式中的分隔符。當使用RegExp時,您不會傳遞任何分隔符。所以~永遠不會是正確的。也許你在想PHP。
  • 雖然沒有必要,你的一些正則表達式可以改進。 {1}量詞是隱含的,[0-9]字符類可以用\d替代。
  • 而不是有一個空塊和else,只是否定與爆炸操作員(!)的條件。

這裏是如何我可能會使用它......

if (! postcod.val().match(/^([1-9]\d{3}\s[A-Z]{2})$/)){ 
    ... 
} 
+0

謝謝!!!!這是很酷的作品 – Mary 2011-05-17 07:55:17