摘要:Faster JavaScript Trim
處理字串習慣去除頭尾空白以防意外,但 js沒有內建 trim…得自己寫。
第一個看過的 trim是這種形式:
String.prototype.trim=function(){
return this.replace(/^\s*|\s*$/g,'');
}
var s=' abcde ffe ';
alert(s);
alert(s.trim());
blog.stevenlevithan.com/archives/faster-trim-javascript,這篇文章整理了其它方式,有興趣可以玩玩看,這裡僅做個人筆記~
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
return str.replace(/^\s+/, '').replace(/\s+$/, '');
return str.substring(Math.max(str.search(/\S/), 0), str.search(/\S\s*$/) + 1);
return str.replace(/^\s+|\s+$/g, '');
str = str.match(/\S+(?:\s+\S+)*/);
return str ? str[0] : '';
return str.replace(/^\s*(\S*(\s+\S+)*)\s*$/, '$1');
return str.replace(/^\s*(\S*(?:\s+\S+)*)\s*$/, '$1');
return str.replace(/^\s*((?:[\S\s]*\S)?)\s*$/, '$1');
return str.replace(/^\s*([\S\s]*?)\s*$/, '$1');
function trim10 (str) {
var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
for (var i = 0; i < str.length; i++) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(i);
break;
}
}
for (i = str.length - 1; i >= 0; i--) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(0, i + 1);
break;
}
}
return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}
function trim11 (str) {
str = str.replace(/^\s+/, '');
for (var i = str.length - 1; i >= 0; i--) {
if (/\S/.test(str.charAt(i))) {
str = str.substring(0, i + 1);
break;
}
}
return str;
}
function trim12 (str) {
var str = str.replace(/^\s\s*/, ''),
ws = /\s/,
i = str.length;
while (ws.test(str.charAt(--i)));
return str.slice(0, i + 1);
}