为以下值创建正则表达式

时间:2012-10-11 12:33:13

标签: javascript regex

我想创建一个正则表达式,以便它可以接受以下值: -

100, 100.00, (100),(100.00),$100, $100.00, $(100), $(100.00)

我成功构建了以下正则表达式: -

/^(\$?(?=\d*(\.\d{1,3})?$))|^(\$?\((?=\d*(\.\d{1,3})?\)$))/

但如果值只是$

,则regex会失败

我想如果价值只是$那么它应该不接受它..

但同时它也应该接受空白值。

请帮帮我。

提前致谢

2 个答案:

答案 0 :(得分:3)

似乎你的整数部分永远不是可选的,所以你应该确保正则表达式使它成为必需的(现在,即使空字符串也会通过你的正则表达式):

/^\$?(?:\d+(?:\.\d{1,3})?$|\(\d+(?:\.\d{1,3})?\)$)/

\d+表示“一个或多个数字”。

答案 1 :(得分:0)

我改变了我的正则表达式:

^(\$?(?=\d+(\.\d{1,3})?$))|^(\$?\((?=\d+(\.\d{1,3})?\)$))|^((?=\d*(\.\d{1,3})?$))

它为我工作..