Pat*_*Pat 31
根据这个页面,最好的全能方法是
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
Run Code Online (Sandbox Code Playgroud)
当然,如果您使用的是jQuery,它将为您提供优化的trim方法.
K. *_*R. 19
我知道这个问题很古老但是现在,Javascript确实有一个原生的.trim()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
giz*_*zmo 18
好吧,正如很多人总是说的那样,trim函数运行得很好,但是如果你不想仅使用整个框架来执行修剪,那么查看它的实现可能会很有用.所以这里是:
function( text ) { return (text || "").replace( /^(\s|\u00A0)+|(\s|\u00A0)+$/g, "" );}
Run Code Online (Sandbox Code Playgroud)
与此处提出的其他解决方案相比,我在此实现中看到的主要优点是:
正如其他几个人已经指出的那样,通常最好通过使用第三方JS库来做这种事情.并不是修饰()是一个复杂的功能来自己构建,但有许多功能不是您可能需要的JavaScript本机并最终自己编写,使用库很快就会变得更具成本效益.
当然,使用JS库的另一个好处是作者努力确保这些功能可以在所有主流浏览器中运行,这样您就可以编写标准接口并忘记Internet Explorer与所有浏览器之间的烦恼差异其他浏览器.
对于ltrim,将没有任何东西替换为锚定在字符串开头的空格:
str2 = str.replace(/^\s+/,'');
Run Code Online (Sandbox Code Playgroud)
对于rtrim,将没有任何东西替换为锚定在字符串末尾的空格:
str2 = str.replace(/\s+$/,'');
Run Code Online (Sandbox Code Playgroud)
修剪:
str2 = str.replace(/^\s+|\s+$/g,'');
Run Code Online (Sandbox Code Playgroud)
这些都使用正则表达式来完成实际工作.
为什么不修改String原型?为什么不从开源库窃取修剪函数,就像我在这里使用YUI一样?(你真的需要为这个简单的设备加载和整个框架吗?)把它们放在一起你得到这个:
String.prototype.trim = function() {
try {
return this.replace(/^\s+|\s+$/g, "");
} catch(e) {
return this;
}
}
var s = " hello ";
alert(s.trim() == "hello"); // displays true
Run Code Online (Sandbox Code Playgroud)
// Licensed under BSD
function myBestTrim( str ){
var start = -1,
end = str.length;
while( str.charCodeAt(--end) < 33 );
while( str.charCodeAt(++start) < 33 );
return str.slice( start, end + 1 );
};
Run Code Online (Sandbox Code Playgroud)
不过,我的解决方案就是这样(因为Firefox 3.5及更高版本中的String对象已经有了一个trim
方法):
String.prototype.trim = String.prototype.trim || function () {
var start = -1,
end = this.length;
while( this.charCodeAt(--end) < 33 );
while( this.charCodeAt(++start) < 33 );
return this.slice( start, end + 1 );
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38167 次 |
最近记录: |