首页 > 解决方案 > 如何定义正则表达式以从价格字符串中提取货币符号?

问题描述

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

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

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

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

标签: javascriptregex

解决方案


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

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

编辑:

如果你想支持阿拉伯/印度数字,你可以进一步扩展它

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

推荐阅读