2012-07-13 27 views
0

貨幣正則表達式我需要幫助:我想在我的JavaScript的貨幣輸入,在格式驗證:十進制

1 234,78(所以1000個2位小數是可能之間的空間)。

例子:

50,25 
50 
1 150 
1 150,44 
1 000 001 
1 000 001,25 

你能幫助我嗎?

Thanks2

+0

http://www.regular-expressions.info/是開始學習正則表達式的好地方。 – 2012-07-13 11:57:30

+0

當輸入中的空格和逗號是可允許的字符時,需要一些更好的方法來區分不同的示例。你可以編輯將它們放在不同的行中,將它們放在引號中,或在它們之間放置明確的分隔符? – 2012-07-13 11:59:40

+0

允許多少個小數文摘? 1還是隻有2? – Inkbug 2012-07-13 12:03:46

回答

2

^(\+|-)?(0|[1-9][0-9]{0,2}([0-9]{3,3})*)(,[0-9]{1,2})?$

+0

[討論轉移到聊天](http://chat.stackoverflow.com/rooms/13854)。 – 2012-07-13 17:36:46

0

我認爲像 - >

re.match(r"[0-9]{0,2}(\s[0-9]{3})*", str) 

應該工作。

+0

這不記錄逗號。 – Inkbug 2012-07-13 12:08:14

+0

也不顯示JavaScript解決方案(其中一個標籤) – 2012-07-13 13:25:16

0

使用jQuery的autoNumeric插件是非常好,方便。 插件,你在表單輸入類型,自動格式化貨幣和數字

第一 - 包括的jquery.js和autoNumeric-1.9.19.js JavaScript文件的標題:

二 - 上的HTML插入一個形式和輸入字段/ JSP文件:

三 - 在一個單獨的腳本初始化autoNumeric $( '選擇')autoNumeric( '初始化'):

jQuery的(函數($){

$('#someID_defaults').autoNumeric('init', {aSign:',', pSign:'£', vMax:'99999.99' }); 

});。

1

據測試,它是去工作

例如:9 999 999 999,99

$( '#量')變化(函數(){

$('。 TR:最後的」。).find( 「TD:最後一個」)文本(消息[ '的無效'])隱藏();

var inputVal = $(this).val(); 

var patternMontant = /^\$?(([0-9]{0,10}))?\,[0-9]{2}$/; 

if(!patternMontant.test(inputVal)) { 

$( 'TR:去年').find(「TD :「last」)。text(messages ['amount invalid'])。show().css(「color」,「red」);

$(this).val(''); 

}

});