嘿,我試圖從字符串中刪除兩個字符和任何空格,看起來像這樣。刪除字符串和空格中的多個字符
var num1 = "34 345 324.34 $"
var num2 = "$34,345,324.34"
我基本上要刪除$
和,
和空白
到目前爲止,我有這個
num1.replace(/,|\s/g,""); //34345324.34$
num2.replace(/,|\s/g,""); //$34345324.34
我怎麼也刪除$
謝謝。
嘿,我試圖從字符串中刪除兩個字符和任何空格,看起來像這樣。刪除字符串和空格中的多個字符
var num1 = "34 345 324.34 $"
var num2 = "$34,345,324.34"
我基本上要刪除$
和,
和空白
到目前爲止,我有這個
num1.replace(/,|\s/g,""); //34345324.34$
num2.replace(/,|\s/g,""); //$34345324.34
我怎麼也刪除$
謝謝。
你似乎在處理貨幣字符串。您可以按照您的黑名單方法使用.replace(/[,\s$]+/g,"")
刪除所有出現的1+逗號,空格和美元符號。但是,一旦你有英鎊,歐元,日元等貨幣符號,你將不得不更新正則表達式。
使用白名單方法是比較容易,刪除不屬於您的白名單,數字和點的所有字符:
.replace(/[^0-9.]+/g,"")
[^0-9.]+
匹配1個或多個除([^...]
是與反轉字符範圍/集匹配的否定字符類)數字和點以外的任何字符。
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, ""));
}
對於字符串(或結尾)開始處的空格使用str.trim();
,它將從包含它們的字符串的開始和/或結尾去除任何結尾的空格。
要刪除所有點,空間和美元,加上美元符號(逃)到你的正則表達式:
/,|\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)
'替換(/ [$,\ S] /克, 「」)'' – Thomas
.replace(/ [$,\ S] +/g,「」);' – anubhava
只是*保留*數字和小數點不會更強大嗎?例如。 'num2.replace(/ [^ \ d。]/g,'')' –