2013-10-04 71 views
0

我有一個正則表達式接受下面的付款和金額。允許使用「$」「,」和兩個小數空格的格式。我需要這個正則表達式允許小數後尾隨空格,像這樣'$50.00 '需要更改正則表達式來接受尾隨空格

/^\$?[0-9 ][0-9\, ]*(\.\d{1,2})?$|^\$?[\.]([\d][\d])$/ 

的思考?

+0

歡迎來到Stack Overflow!你真的嘗試過嗎?發生了什麼?除非您提供更多細節,否則您的問題很可能會被關閉/擱置。 – Derek

回答

1

\s*將捕獲any whitespace,包括製表符和換行符:

/^\$?[0-9 ][0-9\, ]*(\.\d{1,2})?$|^\$?[\.]([\d][\d])\s*$/ 

如果你只是想驗證美元價值,我想使它成爲一個稍微簡單(雖然我不知道你的確切使用情況):

/^\$?[0-9,]+(\.\d{2})?\s*$/ 
+0

請注意,這實際上不匹配''$ 50.00''。 –

+0

請參閱使用簡化版本進行編輯。 –

+0

你的第二個正則表達式完美地工作。謝謝! –

0

只要添加一個[ ]*到底應該做的伎倆:

/^\$?[0-9 ][0-9\, ]*(\.\d{1,2})?[ ]*$|^\$?[\.]([\d][\d])[ ]*$/ 

但是,您可以通過將您的替代方案包裝在一個組中來簡化此操作。另外請注意,你不需要在角色類中跳出,.,並且如果只有你想要匹配的角色,則根本不需要角色類。

/^\$?(?:[0-9 ][0-9, ]*(\.\d{1,2})?|\.([\d][\d]))[ ]*$/