Javascript 从字符串和空格中删除多个字符

Javascript 从字符串和空格中删除多个字符,javascript,regex,Javascript,Regex,嘿,伙计们,我正试图从一个字符串中删除两个字符和任何空白 var num1 = "34 345 324.34 $" var num2 = "$34,345,324.34" 我基本上想删除$和,和空白 到目前为止,我有这个 num1.replace(/,|\s/g,""); //34345324.34$ num2.replace(/,|\s/g,""); //$34345324.34 如何删除$ 谢谢。对于字符串开头(或结尾)的空白,请使用str.trim(),它将从包含尾随空格的字符串的开头

嘿,伙计们,我正试图从一个字符串中删除两个字符和任何空白

var num1 = "34 345 324.34 $"
var num2 = "$34,345,324.34"
我基本上想删除
$
和空白

到目前为止,我有这个

num1.replace(/,|\s/g,""); //34345324.34$
num2.replace(/,|\s/g,""); //$34345324.34
如何删除
$


谢谢。

对于字符串开头(或结尾)的空白,请使用
str.trim(),它将从包含尾随空格的字符串的开头和/或结尾删除所有尾随空格。

要删除所有点、空格和美元,请在正则表达式中添加美元符号(转义):

/,|\s|\$/g
或者干脆

/[,\s\$]/g
演示:
var num1=“34 345 324.34$”
var num2=“$34345324.34”
var res1=num1.replace(/[,\s\$]/g,”)//34345324.34
var res2=num2.replace(/[,\s\$]/g,”)//34345324.34
console.log(res1)

log(res2)
您似乎在处理货币字符串。您可以遵循黑名单方法,使用
.replace(/[,\s$]+/g,”)
删除所有出现的1+逗号、空格和美元符号。然而,一旦你有了英镑、欧元、日元等货币符号,你就必须更新正则表达式

使用白名单方法更容易,删除白名单以外的所有字符、数字和点:

.replace(/[^0-9.]+/g,"")

[^0-9.]+
匹配任何字符的1次或多次出现,而不是(
[^…]
是一个与反向字符范围/集匹配的否定字符类)数字和点

JS演示:

var nums=[“34345324.34美元”,“34345324.34美元];
变量rx=/[^0-9.]+/g;
用于(nums的var s){
console.log,“=>”,s.replace(rx)”;

}
替换(/[$,\s]/g,”)
。替换(/[$,\s]+/g,”)只保留数字和小数点不是更健壮吗?例如,
num2.替换(/[^\d.]/g',)