2009-12-22 372 views
1

我寫了一個小數點的驗證方法,驗證在texbox文:第一次jQuery驗證不隱瞞錯誤消息

$.validator.addMethod("decimalCheck", function(value) { 
      var v = new RegExp("^\d*[0-9](\.\d*[0-9])?$", "g"); 
      return v.test(value); 
     }, "Error here"); 

,我inputed「12,34」的字符串文本框和錯誤消息顯示。 第二次,我輸入「12」字符串到文本框。這是有效的字符串,但不會隱藏錯誤消息。

請幫我解決 感謝&問候

回答

3

試試這個(也略有優化,正則表達式有相同的功能)

$.validator.addMethod("decimalCheck", function(value) { 
    var v = /^\d+(\.\d+)?$/; 
    return v.test(value); 
}, "Error here"); 

你的問題是,你需要轉義反斜線它self(double escape)else else正則表達式構造函數實際得到這個字符串傳入("^d*[0-9](.d*[0-9])?$"

var v = new RegExp("^\\d*[0-9](\\.\\d*[0-9])?$", "g"); 

btw。在這裏使用g標誌可能會導致意外的結果。無論如何,您最好使用^$

+0

非常感謝jitter – Linh 2009-12-23 01:23:43