2009-05-29 40 views
10

我有這樣的正則表達式的工作,但現在需要允許不數小數點以及的jQuery美國貨幣驗證正則表達式允許完整的數字以及

// Validate for 2 decimal for money 
jQuery.validator.addMethod("decimalTwo", function(value, element) { 
    return this.optional(element) || /^(\d{1,3})(\.\d{2})$/.test(value); 
}, "Must be in US currency format 0.99"); 

目前這種強迫用戶至少有.00加入到一個數字,希望它允許當前的正則表達式和整數沒有小數。

我只是添加?在RegEx的下半年結束時?

// Validate for 2 decimal for money 
jQuery.validator.addMethod("decimalTwo", function(value, element) { 
    return this.optional(element) || /^(\d{1,3})(\.\d{2})?$/.test(value); 
}, "Must be in US currency format 0.99"); 

編輯:

好,但如果有人進入1.2是什麼?

+0

重新編輯:好吧,如果他們做了什麼?你沒有告訴我們在這種情況下你想要發生什麼。 – chaos 2009-05-29 16:48:30

回答

14

如果你想要的是1,1.2和1.20所有工作:

/^(\d{1,3})(\.\d{1,2})?$/ 
+0

OMG我很喜歡其他的東西,我甚至沒有想到這一點,大聲笑感謝 – 2009-05-29 17:18:33

2

是的,只需添加一個?到第二個分組的末尾,使其成爲可選項。這應該很好。

+0

又一次扭曲,請參閱編輯 – 2009-05-29 16:36:01

0
$.validator.addMethod("money", function (value, element) { 
    if ($("#<%= rdOtherAmt.ClientID %> input:checked")) { 
     return this.optional(element) || /^((\d{1,5})+\.\d{2})?$|^\$?[\.]([\d][\d]?)$/.test(value); 
    }     
}); 

這將很好地工作,需要兩個小數。

0

這是我們用於正則表達式貨幣輸入的最好的整體答案,它涵蓋了我們所需的全部內容:/(?=.)^\$?(([1-9][0-9]{0, 2}(,[0-9] {3})*)| [0-9] +)?(。[0-9] {1,2})?$/

0

我想測試keyup 。因此我需要接受999,999。在輸入第一個小數位(十分之一)之前。但是,我仍然希望在2位小數(百分之一)的位置最大 - 假設在我的代碼中輸入了999.1 == 999.10。

var currencywithcommas = /^(\d+|\d{1,3}(,\d{3})*)+(\.\d{2})?$/; 
if ($("#yourelement").val().match(currencywithcommas)) { 
    // positive match code 
} 

更新: 我結束了使用jQuery驗證插件到期的執行情況。

原型代碼:

jQuery.validator.addMethod("currencywithcommas", function (value, element) { 
    var currencywithcommasReg = /^(\d+|\d{1,3}(,\d{3})*)+(\.\d{2})?$/; 
    return this.optional(element) || value.match(currencywithcommasReg); 
}, "Must be in US currency format 9.99"); 

實現:

$("#form1").validate({ 
     rules: { 
      amount1: { 
       required: true, 
       currencywithcommas: true 
      }, 
... 

相同的概念,而是擴大到使用驗證功能。

$(".reqField1").each(function() { 
    $(this).keyup(function() { 
     $("#submitButton").prop("disabled", CheckInputs(".reqField1")); 
    }); 
}); 

function CheckInputs(reqfldclass) { 
    var valid = false; 
    $(".reqField1").each(function() { 
     if (valid) { return valid; } 
     var input = $.trim($(this).val()); 
     valid = !input; 
    }); 
    return valid; 
} 

而且,鮑勃是你的叔叔......

+0

,這解決了它的權利? – Drew 2015-12-24 15:33:23