0
var price = "19,99 $"
price.replace(/[^0-9,.]/g, '').replace(",",".");
console.log(price)

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

3 回答 3

1

您可以获取所有数字并使用点连接。

var price = "19,99 $"
price = price.match(/\d+/g).join('.');

console.log(price);

于 2021-03-12T09:17:45.263 回答
1

这是可能的,但可能不值得。您必须传递一个函数作为第二个参数:

var price = "19,99 $";
price = price.replace(/[^0-9.]/g, m => m === "," ? "." : "");
console.log(price);

,从否定字符类中删除,然后在回调中检查匹配是否为 a ,,如果是则返回"."""如果不是。另请注意将结果分配回price(您的原件不是,它正在丢弃结果)。

于 2021-03-12T09:01:39.030 回答
0

您可以用and替换字符串is not 0-9 and , with " ".之后的任何内容。splitcomma as separatorjoin with dot

const price = "19,99 $"
const result = price.replace(/[^0-9,]/g,"").split(",").join(".");

console.log(result);

于 2021-03-12T09:46:03.267 回答