如何从字符串中剥离前导和尾随空格?

例如,“dog”应该变成“dog”。


当前回答

如果你已经在使用jQuery,那么你可能想看看jQuery.trim(),它已经提供给jQuery了。

其他回答

来自MDN的更好的填料,支持去除BOM和NBSP:

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

请记住,修改内置原型会带来性能损失(由于JS引擎放弃了许多运行时优化),在性能关键的情况下,您可能需要考虑定义myTrimFunction(string)的替代方案。话虽如此,如果您的目标是一个没有本机.trim()支持的旧环境,那么您可能要处理更重要的性能问题。

如果你已经在使用jQuery,那么你可能想看看jQuery.trim(),它已经提供给jQuery了。

Steven Levithan曾经写过关于如何实现一个更快的JavaScript Trim。绝对值得一看。

如果不是编写新代码来修整字符串,而是查看调用“strip()”的现有代码,并想知道为什么它不能工作,那么您可能需要检查它是否试图包含类似prototypejs框架的东西,并确保它实际上正在被加载。 该框架为所有String对象添加了strip函数,但如果你升级了它,而你的网页仍然引用旧的.js文件,它当然不会工作。

这是我使用的函数。

function trim(s){ 
  return ( s || '' ).replace( /^\s+|\s+$/g, '' ); 
}