我正要在javascript中创建一个修剪功能,但由于我不想重新发明轮子,因此我使用了此方法。
我发现这个链接 http://www.somacon.com/p355.php我应该修改String的原型吗?
它提供的解决方案是:
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+$/,"");
}
如果你还don'y Wnt信号改变字符串的原型,然后使用这个它说:
function trim(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
return stringToTrim.replace(/\s+$/,"");
}
我想知道在什么情况下应该不是修改String的原型或者说任何对象。
+1 for'if(!('('String.prototype'trim')){' – 2009-11-09 12:04:25
if(!String.prototype.trim)有什么问题?看起来对我更有效率。 – KooiInc 2009-11-09 15:20:19
'in'更明确地表明它正在测试什么,不依赖于某个属性的真实性,或者针对任何其他语言会认为是异常的东西,重新调整一个新的“未定义”的奇怪和可怕的JavaScript怪癖。对于这个特殊的情况当然根本不重要,但是一般情况下我总是使用'in'来测试对象是否有属性。 – bobince 2009-11-09 19:11:54