如何从字符串中修剪()空格?

IT技术 javascript jquery string trim
2021-03-14 09:10:04

JavaScript 似乎没有本地trim()方法。如何使用 JavaScript 在字符串的开头和结尾修剪空格?

6个回答

jQuery 的最短形式:

string = $.trim(string);

关联

根据此页面,最好的全方位方法是

return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

当然,如果您使用的是 jQuery ,它将为您提供优化的修剪方法。

如果进一步阅读,文章末尾提到的修改后的trim11对于更长的字符串是更好的方法。
2021-04-30 09:10:04
根据链接页面, \s+ 和 \s\s* 之间的唯一区别是后者要快一点。
2021-05-04 09:10:04
这是一个旧线程,同时原生修剪是在 Javascript 中实现的。Pat 的正则表达式以及 Chris MacDonald 提到的 trim11 非常慢,而且 jquery 的 trim 在某些浏览器中也很慢(jsperf.com/mega-trim-test/16)。更快的修剪实现在这里:stackoverflow.com/a/12547889/1691517
2021-05-04 09:10:04

我知道这个问题很古老,但现在,Javascript 实际上确实有一个原生的 .trim()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

@MDCore 感谢您接受我的回答并提及最低 IE 版本。但是,当您说几年后这无关紧要时,您指的是什么,您是说 javascript 会过时吗?
2021-05-02 09:10:04
你说得对!原生总是更好。它仅来自 IE9 及更高版本,但在几年内也无关紧要。
2021-05-08 09:10:04
@KR 所以我五年半前问过这个问题。从那时起,trim() 就成为了标准函数。我考虑过只是指出我们在IE 支持方面已经差不多了,但再过五年半就没有实际意义了。如果他们坚持使用 IE8,我宁愿人们使用本机函数并使用许多其他答案之一。
2021-05-10 09:10:04

好吧,正如很多人常说的那样,trim 函数工作得很好,但是如果您不想使用整个框架来执行修剪,那么查看它的实现可能会很有用。所以这里是:

function( text ) { return (text || "").replace( /^(\s|\u00A0)+|(\s|\u00A0)+$/g, "" );}

与这里已经提出的其他解决方案相比,我在这个实现中看到的主要优点是:

  • 'g' 标志允许您在多行字符串上执行修剪
  • (text || "") 语法确保函数始终有效,即使传递的参数为空或未定义。
g标志有没有用在这里没有m标志。
2021-04-30 09:10:04

正如其他一些人已经指出的那样,通常最好使用第三方 JS 库来做这种事情。并不是说trim() 是一个自己构建的复杂函数,而是有很多不是 JavaScript 原生的函数,您可能需要并最终自己编写,使用库很快就会变得更具成本效益。

当然,使用 JS 库的另一个好处是作者努力确保这些功能可以在所有主要浏览器上运行,这样您就可以编写标准界面,而忘记 Internet Explorer 和所有浏览器之间令人恼火的差异。其他浏览器。