如何在 JavaScript 中修剪字符串?也就是说,如何在 JavaScript 中删除字符串开头和结尾的所有空格?
在 JavaScript 中修剪字符串?
IT技术
javascript
string
trim
2021-01-25 01:24:13
6个回答
自 IE9+ 以来的所有浏览器都有trim()
处理字符串的方法:
" \n test \n ".trim(); // returns "test" here
对于不支持的浏览器trim()
,你可以使用MDN 中的这个 polyfill :
if (!String.prototype.trim) {
(function() {
// Make sure we trim BOM and NBSP
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
String.prototype.trim = function() {
return this.replace(rtrim, '');
};
})();
}
也就是说,如果使用jQuery
,$.trim(str)
也可用并处理 undefined/null。
看到这个:
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,' ');};
如果您已经在使用该框架,那么来自jQuery的修剪很方便。
$.trim(' your string ');
我倾向于经常使用 jQuery,所以用它修剪字符串对我来说是很自然的。但是有可能对 jQuery 产生强烈反对吗?:)
虽然上面有一堆正确的答案,但应该注意的是String
,JavaScript中的对象.trim()
从ECMAScript 5 开始就有一个本机方法。因此,理想情况下,任何对 trim 方法进行原型设计的尝试都应该首先检查它是否已经存在。
if(!String.prototype.trim){
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g,'');
};
}
原生添加到: JavaScript 1.8.1 / ECMAScript 5
因此支持:
火狐:3.5+
Safari:5+
Internet Explorer:IE9+(仅限标准模式!)http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more .aspx
铬:5+
歌剧:10.5+
ECMAScript 5 支持表:http : //kangax.github.com/es5-compat-table/
有很多实现可以使用。最明显的似乎是这样的:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, "");
};
" foo bar ".trim(); // "foo bar"
这里的简单版本JavaScript 修剪的一般功能是什么?
function trim(str) {
return str.replace(/^\s+|\s+$/g,"");
}
其它你可能感兴趣的问题