摘要: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); }