使用regexp将$(5.20)转换为-5.20

时间:2012-10-02 16:12:26

标签: javascript jquery regex

我正在尝试使用正则表达式将$(5.20)转换为-5.20,但似乎无法弄清楚如何使用正则表达式。有人可以帮我解决这个问题吗?我需要删除美元符号,只接受最多1位小数的数字,即不接受5.2.0,而只接受5.20。此外,开头的$是可选的,也可能有多个$

我开始的例子:

^\((\d)*\)$ - does not work

-$1

1 个答案:

答案 0 :(得分:7)

试试这个正则表达式

^\$\((\d+\.\d+)\)$

你的替换应该已经没事了。这个正则表达式要求小数点前后至少有一位数。

正则表达式的问题在于,只有在没有小数点的情况下它才会匹配。另外,您不检查$字符。最后,如果这个$(5.20)不是你的完整字符串,那么你应该在开头和结尾省略锚点:

\$\((\d+\.\d+)\)

如果你想匹配没有小数点的数字,那么你可以使点和第二个重复可选:

\$*?\((\d+\.?\d*)\)