我本来打算在 javascript 中创建一个修剪函数,但由于我不想重新发明轮子,所以我在谷歌上搜索了这个方法。
我找到了这个链接http://www.somacon.com/p355.php http://www.somacon.com/p355.php
它提供的解决方案是:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
return this.replace(/\s+$/,"");
}
它还说如果你不想改变 String 的原型,那么使用这个:
function trim(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
return stringToTrim.replace(/\s+$/,"");
}
我想知道在什么情况下应该not修改 String 的原型或任意对象。
The trim
函数将在 ECMAScript 第五版中标准化,并且已经存在于某些浏览器中。所以:
是的,将它们添加到原型中是完全合适的,但是
如果它们已经存在,则不应将它们添加到原型中,因为您只是将快速的本机代码函数替换为慢速的 JavaScript 函数。
作为两次替换进行修剪通常也会稍微快一些:
// Add ECMA262-5 string trim if not supported natively
//
if (!('trim' in String.prototype)) {
String.prototype.trim= function() {
return this.replace(/^\s+/, '').replace(/\s+$/, '');
};
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)