我有一些价格标签,如$ 23.47,$ 50.00,$ 0.37,$ 113.57,$ 600,0456.00等等。我打算删除美元($),千位分隔符(,)以及任何空格。
为此,我正在使用正则表达式
(Sometext).replace(/^[, ]+|[, ]+$|[, ]+/g, "").replace('$',"").replace(/\s+/g, ' ');
有没有更好的方法来组合所有这些操作(删除千位分隔符逗号,删除美元符号,删除空格)和单个替换?
答案 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
允许使用任何数字字符。