如何从字符串中剥离前导和尾随空格?
例如,“dog”应该变成“dog”。
如何从字符串中剥离前导和尾随空格?
例如,“dog”应该变成“dog”。
当前回答
Steven Levithan曾经写过关于如何实现一个更快的JavaScript Trim。绝对值得一看。
其他回答
如果不是编写新代码来修整字符串,而是查看调用“strip()”的现有代码,并想知道为什么它不能工作,那么您可能需要检查它是否试图包含类似prototypejs框架的东西,并确保它实际上正在被加载。 该框架为所有String对象添加了strip函数,但如果你升级了它,而你的网页仍然引用旧的.js文件,它当然不会工作。
Gumbo已经在评论中提到了这一点,但这值得重复作为回答:trim()方法是在JavaScript 1.8.1中添加的,并且所有现代浏览器(Firefox 3.5+, IE 9, Chrome 10, Safari 5.x)都支持,尽管IE 8及更老版本不支持它。用法很简单:
" foo\n\t ".trim() => "foo"
参见:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim http://msdn.microsoft.com/en-us/library/windows/apps/ff679971%28v=vs.94%29.aspx
如果你已经在使用jQuery,那么你可能想看看jQuery.trim(),它已经提供给jQuery了。
用这个:
if(typeof(String.prototype.trim) === "undefined")
{
String.prototype.trim = function()
{
return String(this).replace(/^\s+|\s+$/g, '');
};
}
trim函数现在可以作为字符串的一级函数使用。例如:
" dog".trim() === "dog" //true
编辑:采纳了J-P的建议,将正则表达式模式合并为一个。还根据Christoph的建议添加了全局修饰语。
采用了Matthew Crumley关于在重新创建trim函数之前嗅探它的想法。这是在客户端上使用的JavaScript版本较新的情况下完成的,因此有自己的本机修剪函数。
这是我使用的函数。
function trim(s){
return ( s || '' ).replace( /^\s+|\s+$/g, '' );
}