2010-06-27 46 views

回答

28

問題出在用於數字的正則表達式。縱觀the latest version,線1021至1023年,我們已經得到了:

number: function(value, element) { 
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); 
}, 

的問題是,這第一塊,看起來領導負號和數字,個人或由逗號分隔的三個爲一組,是不可選:

(?:\d+|\d{1,3}(?:,\d{3})+) 

後跟蹤年底?將使可選:

(?:\d+|\d{1,3}(?:,\d{3})+)? 

安裝此更新,您可以修改你r是插件的本地副本,改變正則表達式修改後的版本,或添加replacement validation method到您的javascript:

jQuery.validator.addMethod("number", function(value, element) { 
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value); 
}, "Please enter a valid number."); 

在任何頁面與此addMethod調用,number驗證方法將被改寫做了一些不需要前導零的驗證。

+0

謝謝 - 這個問題一直沒有答覆幾個月! – 2010-10-31 21:15:45

+0

沒問題。這一點在我一直在建立的系統上找到我,找到答案找到了你的問題。我通過電子郵件向插件創建者發送了關於正則表達式的反饋,並且如果沒有問題,請將修復插入插件。 – boflynn 2010-11-01 13:55:24

+0

非常有幫助的答案。我在解決方案中遇到的一個小問題:jQuery.validator.addMethod(「numeric」...應該是jQuery.validator.addMethod(「number」 – 2011-01-24 16:32:27

0

包含在jQuery Validation 1.14.0中的解決方案負責領先的零問題,但留下了一個負面的負面問題。 -.124無效。 -0.124是有效的。以上帖子中提供的RegEx似乎允許-.124,所以我贊成通過jQuery驗證解決方案1.14.0