在 javascript 中删除字符串中的空白

我读过 这个问题关于 javascript 裁剪的文章,有一个正则表达式的答案。

然后我希望修剪去除之间的 内心空间 Hello 和世界。

function myFunction() {
alert("Hello World ".trim());
}

编辑

为什么我会这样想!

胡说!显然修剪不会移除内部空间!只有前面和后面的那些,这就是修剪的工作原理,那么这是一个非常错误的问题,我道歉。

314152 次浏览

可能是因为你忘记了 在公认的答案中实施解决方案。这是使 trim()工作的代码。

更新

这个答案只适用于较旧的浏览器。较新的浏览器显然本身支持 trim()

用于删除空格字符

"hello world".replace(/\s/g, "");

对于所有的留白,请在下面的评论中使用 Rocket 的建议!

可以将 Strings更换方法与正则表达式一起使用。

"Hello World ".replace(/ /g, "");

方法返回一个新字符串,其中部分或全部匹配 被替换的模式。模式可以是字符串或 正则表达式

正则表达式

  • //-正则表达式匹配空间

  • G -全局标志; 查找所有匹配,而不是在第一次匹配后停止

const str = "H    e            l l       o  World! ".replace(/ /g, "");
document.getElementById("greeting").innerText = str;
<p id="greeting"><p>

你可以用

"Hello World ".replace(/\s+/g, '');

trim()只删除字符串上的尾随空格(链中的第一个和最后一个)。 在本例中,这个 regExp 更快,因为可以同时删除一个或多个空格。

如果将替换的空字符串更改为“ $”,区别就会更加明显:

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // #Q#W#E#R#TY#

性能比较-/\s+/g更快

您可以使用递归解决方案:

function removeWhitespaces(string, i = 0, res = "") {
if (i >= string.length)
return res
else
if (string[i] == " ")
return removeWhitespaces(string, i + 1, res)
else
return removeWhitespaces(string, i + 1, res += string[i])
}


console.log(removeWhitespaces(" Hello World,   how is it going ? "))

如果只想替换空格,最好的方法是这样做:

let str = " H e l l o 1  5 9   ";
let onlyCharacters = str.replaceAll(" ", "");


// onlyCharacters = Hello159

我使用了 str.replace(/\s/g, "");很多,但它不工作在所有的浏览器,例如,它不工作在 duckduckgo 在 android,也不工作在 android webview。