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

Her*_*che 72 html javascript trim

我已经阅读了关于javascript trim的这个问题,带有正则表达式的答案.

然后我希望修剪去除Hello和World之间的内部空间.

function myFunction() {
    alert("Hello World ".trim());
}
Run Code Online (Sandbox Code Playgroud)

EDITED

为什么我期待!?

废话!显然修剪不会移除内部空间!只有前导和尾随,这就是修剪工作的方式,那么这是一个非常错误的问题,我的道歉.

Hen*_*son 190

用于空间字符删除使用

"hello world".replace(/\s/g, "");
Run Code Online (Sandbox Code Playgroud)

所有白色空间在下面的评论中使用Rocket的建议!

  • 如果有多个空格,你可能想要使用`.replace(//g,'')`. (127认同)
  • @Juhana:如果你想删除其他空格,那么:`.replace(/\s/g,'')`. (47认同)
  • @RocketHazmat是的!正确答案!虽然这可能会稍微提高效率:str.replace(/\s +/g,'') (12认同)
  • @PitchiahNatarajan`\s`将匹配空格,制表符和新行. (3认同)

小智 16

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

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

// onlyCharacters = Hello159
Run Code Online (Sandbox Code Playgroud)

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


小智 12

您可以使用

"Hello World ".replace(/\s+/g, '');
Run Code Online (Sandbox Code Playgroud)

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#
Run Code Online (Sandbox Code Playgroud)

性能比较 -/\s+/g更快。见这里:http : //jsperf.com/s-vs-s

  • 谢谢你举的例子,让我很清楚有什么区别。 (2认同)

Joh*_*nde 8

可能是因为您忘记在接受的答案中实施解决方案.这就是制作trim()作品的代码.

更新

此答案仅适用于旧版浏览器.较新的浏览器显然支持原生trim().

  • 不一定,有些浏览器内置它.:-P (2认同)
  • 它现在存在于大多数现代浏览器中 -> http://kangax.github.com/es5-compat-table/ (2认同)

JSO*_*C11 6

您可以将字符串替换方法与正则表达式一起使用。

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

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

正则表达式

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

  • g - 全局标志;查找所有匹配项而不是在第一个匹配项后停止

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