javascript - 如何定义正则表达式以从价格字符串中提取货币符号?
问题描述
我有一个价格字符串,我想从中获取货币符号(符号长度可变)。
价格可以以不同的格式呈现。我正在删除点、逗号和数字,但有时在货币符号之前会显示一个逗号或点
var k = "111,112,258$".replace(/\d+([,.]\d+)?/g, "");
console.log(k) //log shows ,$
我认为第二个逗号或点是问题所在。为什么会这样?
解决方案
这将替换输入字符串中的数字、逗号、点和空格
var k = "111,112.111$".replace(/[\d,.\s]/g, "");
console.log(k) // $
编辑:
如果你想支持阿拉伯/印度数字,你可以进一步扩展它
var k = "١٢٣,١١$".replace(/[\d,.\s,١-٩]/g, "");
console.log(k) // $
推荐阅读
- javascript - 正则表达式在字符串中查找动态子字符串
- android - Android 创建 zip 文件
- javascript - 如何在Angular 8上的选择下拉菜单中获取颜色?
- java - 是否有任何库可以在 java 中将秒转换为天/小时/分钟?
- python - 使用 json.loads 处理来自 API 调用的奇怪 JSON
- javascript - 如何在使用 setInterval 时设置元素的样式?
- c++ - 当我将带有 boost::asio 的创建数据包发送到 Minecraft 客户端时出现问题
- javascript - 不能在 React 字符串上使用 substr
- r - 插入符号中的逻辑回归 - 没有拦截?
- javascript - this.form.submit() 在上传目录时不起作用