【问题标题】:How to Merge Two Replace in Javascript?如何在 Javascript 中合并两个替换?
【发布时间】:2021-06-10 07:01:41
【问题描述】:
var price = "19,99 $"
price.replace(/[^0-9,.]/g, '').replace(",",".");
console.log(price)

output
19.99
  • 但是我需要用一个替换来替换两个替换操作! 有可能吗?

【问题讨论】:

  • 您在上面的输出中显示的不是,因为您从未分配回pricereplace 返回结果,它不会就地修改字符串。 (字符串是不可变的。)

标签: javascript reactjs typescript replace web-developer-toolbar


【解决方案1】:

你可以用comma as separatorjoin 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(您的原件不是,它正在丢弃结果)。

    【讨论】:

    • 不使用函数或者操作符可以吗?
    猜你喜欢
    • 2018-02-14
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 2015-11-29
    • 2014-09-25
    • 2019-04-28
    相关资源
    最近更新 更多