如何定义正则表达式从价格字符串中提取货币符号?

时间:2019-04-11 22:10:47

标签: javascript regex

我有一个价格字符串,我想从中获取货币符号(符号的长度可变)。

价格可以用不同的格式显示。我要删除点,逗号和数字,但是有时在货币符号前会显示一个逗号或点

var k = "111,112,258$".replace(/\d+([,.]\d+)?/g, "");
console.log(k) //log shows ,$

我认为第二个逗号或重点是问题。为什么会这样?

2 个答案:

答案 0 :(得分:2)

这将替换输入字符串中的数字,逗号,点和空格

var k = "111,112.111$".replace(/[\d,.\s]/g, "");
console.log(k) // $

编辑:

如果您想支持阿拉伯/印度数字,则可以像这样进一步扩展

var k = "١٢٣,١١$".replace(/[\d,.\s,١-٩]/g, "");
console.log(k) // $

答案 1 :(得分:1)

您可以简化正则表达式并仅替换您感兴趣的字符,而无需提及其他字符:

"111,112,258$".replace(/[\d,.]/g, "")

输出(从终端显示快照):

enter image description here