jQuery拉货币没有美元符号

Tod*_*ddN 4 regex jquery replace

我有一个价格在其中的标签(即$ 150.00).我想使用jQuery只提取没有美元符号($)的文本值.

<div>
  $150.00
</div>
Run Code Online (Sandbox Code Playgroud)

我想输出上面的 150.00

Jam*_*ice 20

您可以使用空字符串replace替换$字符:

var price = $("div").text().replace("$", "");
Run Code Online (Sandbox Code Playgroud)

请注意,对于您的确切示例(具有该间距),不会删除空格.如果你继续使用字符串作为一个数字(parseFloat例如通过)并不重要,但如果你想在其他地方使用它作为文本,你可能想要用jQuery删除空格.trim.

更新 - 基于评论

replace返回一个String.一旦你有了这个字符串,就可以将它解析成一个数字parseFloat(或者parseInt,你正在使用浮点数):

var convertedToNumber = parseFloat(price);

既然你有一个数字,你可以对它进行数学运算:

var percentage = convertedToNumber * 0.95;


Jyo*_*jan 6

使用替换更好,但我可以建议你可以删除字符串中的任何货币符号

$ 150.00
Fr. 150.00
€ 689.00
Run Code Online (Sandbox Code Playgroud)

我已经测试了三个以上的货币符号.你也可以为其他货币符号做.

var price = $("div").text().replace(/[^\d\.]/g, '');
Run Code Online (Sandbox Code Playgroud)

上面的正则表达式将删除所有不是数字或句号的东西.所以你可以得到没有货币符号的字符串,但如果你控制输出那么"150.00",那么你将获得价格

console.log('price : '+price);

output = price : .150.00
Run Code Online (Sandbox Code Playgroud)

这是错误的,所以你检查"."的索引.然后拆分并获得正确的结果.

if (price.indexOf('.') == 0) {
        price = parseFloat(price.split('.')[1]);
}else{
        price = parseFloat(price);
}
Run Code Online (Sandbox Code Playgroud)