我需要像这样调整一个字符串:
需要调整的情况:
Case a: " ", becomes ""
Case b: "z ", becomes "z"
Case c: " z", becomes "z"
不应该调整的情况:
案例 d:“z”,保持不变
Case e: "zzz zz zzz", stays the same
我怎样才能在javascript中实现这一点?
我需要像这样调整一个字符串:
需要调整的情况:
Case a: " ", becomes ""
Case b: "z ", becomes "z"
Case c: " z", becomes "z"
不应该调整的情况:
案例 d:“z”,保持不变
Case e: "zzz zz zzz", stays the same
我怎样才能在javascript中实现这一点?
您可以使用String.trim()
这种情况。它从字符串中删除前导和尾随空格。许多现代浏览器都支持这种方法,它可以让你重写上面的代码更短。
mystring = mystring.trim()
对于不支持 的浏览器,请String.trim()
使用正则表达式创建您自己的方法。
if (!String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
}
}
或者,对于大多数情况,直接使用它会执行相同的操作。
mystring.replace(/^\s+|\s+$/g, '')
您应该使用 ES5.trim()
方法:
" ".trim(); // "";
"z ".trim(); // "z";
" z".trim(); // "z";
" z ".trim(); // "z";
"zzz zz zzz".trim(); // "zzz zz zzz";
为了与旧浏览器兼容,您可以在脚本开头添加以下内容:
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, '');
};
}
足够你使用trim
功能了;但string.trim();
不适用于所有浏览器...
尝试这个:
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.prototype.fulltrim=function(){return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');};
由于新的浏览器 (IE9+)trim()
已经实现,您应该只trim()
在 Prototype-Object 上不可用的情况下实现(覆盖它会对性能造成巨大影响)。在扩展 Native Objects 时通常建议这样做!请注意,除非您使用 ES5,否则添加的属性是可枚举的Object.defineProperty
!
if (!String.prototype.trim) {
//code for trim
}