嘿伙计们,我正在尝试从字符串中删除两个字符和任何空白区域。
var num1 = "34 345 324.34 $"
var num2 = "$34,345,324.34"
我基本上想删除$
和,
以及空格
num1.replace(/,|\s/g,""); //34345324.34$
num2.replace(/,|\s/g,""); //$34345324.34
如何删除$
谢谢。
答案 0 :(得分:1)
对于字符串(或结尾)开头的空格使用str.trim();
,它将从包含它们的字符串的开头和/或末尾去除任何尾随空格。
答案 1 :(得分:1)
您似乎正在处理货币字符串。您可以按照黑名单方法使用.replace(/[,\s$]+/g,"")
删除所有出现的1 +逗号,空格和美元符号。但是,一旦你有一个英镑,欧元,日元等货币符号,你将不得不更新正则表达式。
使用白名单方法更容易,删除白名单上没有的所有字符,数字和点:
.replace(/[^0-9.]+/g,"")
请参阅regex demo。
[^0-9.]+
匹配除了([^...]
是与反向字符范围/集匹配的否定字符类)数字和点之外的任何字符的一次或多次出现。
JS演示:
var nums = ["34 345 324.34 $", "$34,345,324.34"];
var rx = /[^0-9.]+/g;
for (var s of nums) {
console.log(s, "=>", s.replace(rx, ""));
}

答案 2 :(得分:0)
要删除所有点,空格和美元,请将美元符号(已转义)添加到正则表达式中:
/,|\s|\$/g
或只是
/[,\s\$]/g
演示:
var num1 = "34 345 324.34 $"
var num2 = "$34,345,324.34"
var res1 = num1.replace(/[,\s\$]/g,""); //34345324.34
var res2 = num2.replace(/[,\s\$]/g,""); //34345324.34
console.log(res1)
console.log(res2)