如何在 Javascript 中合并两个替换?
Posted
技术标签:
【中文标题】如何在 Javascript 中合并两个替换?【英文标题】:How to Merge Two Replace in Javascript? 【发布时间】:2021-06-10 07:01:41 【问题描述】:var price = "19,99 $"
price.replace(/[^0-9,.]/g, '').replace(",",".");
console.log(price)
output
19.99
但是我需要用一个替换来替换两个替换操作!
有可能吗?
【问题讨论】:
您在上面的输出中显示的不是,因为您从未分配回price
。 replace
返回结果,它不会就地修改字符串。 (字符串是不可变的。)
【参考方案1】:
你可以用comma as separator
和join with dot
替换任何is not 0-9 and , with " ".
之后的split
字符串。
const price = "19,99 $"
const result = price.replace(/[^0-9,]/g,"").split(",").join(".");
console.log(result);
【讨论】:
太大了【参考方案2】:你可以得到所有数字并用点连接。
var price = "19,99 $"
price = price.match(/\d+/g).join('.');
console.log(price);
【讨论】:
【参考方案3】:这是可能,但它可能不值得。您必须传递一个函数作为第二个参数:
var price = "19,99 $";
price = price.replace(/[^0-9.]/g, m => m === "," ? "." : "");
console.log(price);
我从否定字符类中删除了,
,然后在回调中检查匹配是否为,
,如果是则返回"."
,否则返回""
。另请注意将结果分配回price
(您的原件不是,它正在丢弃结果)。
【讨论】:
不使用函数或者操作符可以吗?以上是关于如何在 Javascript 中合并两个替换?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaScript / jQuery 中合并两个函数?
如何在 JavaScript 中将两个对象合并到同一个属性中?