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

时间:2017-05-30 19:39:45

标签: 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

如何删除$

谢谢。

3 个答案:

答案 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)