正则表达式格式化价格

时间:2014-11-19 04:43:19

标签: javascript

我有一些价格标签,如$ 23.47,$ 50.00,$ 0.37,$ 113.57,$ 600,0456.00等等。我打算删除美元($),千位分隔符(,)以及任何空格。

为此,我正在使用正则表达式

(Sometext).replace(/^[, ]+|[, ]+$|[, ]+/g, "").replace('$',"").replace(/\s+/g, ' ');

有没有更好的方法来组合所有这些操作(删除千位分隔符逗号,删除美元符号,删除空格)和单个替换?

4 个答案:

答案 0 :(得分:0)

你能使用正则表达式OR运算符吗?像这样:

(Sometext).replace(/^[, ]+|[, ]+$|[, ]+|\$|\s+/g, "");

|表示正则表达式中的OR。我只是将管道放在你想要匹配的三个模式之间,并在一个replace()中使用它们。我还在美元符号匹配声明中转义$

答案 1 :(得分:0)

基于此this answer尝试:

var price = "$23 . 47"
var simpleValue = price.match(/(\d+)/g).join("")

答案 2 :(得分:0)

您可以使用类似

的内容
'$444,55,22.33'.replace(/[,\s$]/g, "");

答案 3 :(得分:0)

你可以定位任何你想要保留的东西。

所以,像price.replace(/[^\d\.-]/g, '');

这样的正则表达式

括号中的^告诉它匹配除了包含的字符之外的任何内容。

\d允许使用任何数字字符。