2011-05-23 95 views
8

我有這樣爲一個文本框自定義驗證接受金錢:jQuery的自定義驗證查詢錢

//custom validator for money fields 
$.validator.addMethod("money", function (value, element) { 
    return this.optional(element) || value.match(/^\$?\d+(\.(\d{2}))?$/); 
}, "Please provide a valid dollar amount (up to 2 decimal places) and do not include a dollar sign."); 

看來工作,但我不想讓美元的跡象。難道我把它改成這樣:

//custom validator for money fields 
$.validator.addMethod("money", function (value, element) { 
    return this.optional(element) || value.match(/^\?\d+(\.(\d{2}))?/); 
}, "Please provide a valid dollar amount (up to 2 decimal places) and do not include a dollar sign."); 

或者我應該只是去掉了美元符號的其他地方,而不是這樣的小問題打擾用戶?如果那是真的,我應該在哪裏做?

感謝您回答這樣一個問題。

+0

感謝代碼塊編輯... – TheTodd 2011-05-23 18:18:46

+0

但你的正則表達式不接受除數字外的任何符號... – woyaru 2012-09-11 12:38:08

回答

3

只需在驗證之前剝離該值即可。這是很簡單的:

var str = [your value]; 
str = str.replace('$',''); 
2

不,你將其更改爲這個..

value.match(/^\ d +((\ d {2}))/。?)

這3個字符構成了匹配美元符號的正則表達式的一部分。

\ $?