去除字串首尾空格(全形&半形)
阿新 • • 發佈:2019-01-24
非正則表示式:
全形空格Unicode編碼為:12288
半形空格Unicode編碼為:32
大概思路是:
1.利用Unicode編碼從首尾分別開始遍歷字串,找到第一個非空格的位置索引
2.利用String物件的substring()方法從字串中擷取步驟1中獲取的非空格起始結束索引值間的子串
substring()方法:
擷取字串片段,兩個引數,第一個引數為擷取片段的起始位置,第二個引數為擷取片段的結束位置
emmmmm。。。。。兩個引數的擷取區間可以看做 [start,end) 前閉後開
function diyTrim(str) { var result = ""; let start; //非空起始位置 let end; //非空終止位置 //注意全形和半形!!!! //全形空格 Unicode編碼 12288 //半形空格 Unicode編碼 32 for(let i=0;i<str.length;i++){ if((str.charCodeAt(i) != 12288)&&(str.charCodeAt(i) != 32) ){ // console.log(i); start = i; break; } } for(let i=str.length-1;i>=0;i--){ if((str.charCodeAt(i) != 12288)&&(str.charCodeAt(i) != 32) ){ end = i+1; break; } } result = str.substring(start,end); return result } // 測試用例 console.log(diyTrim(' a f b ')); // ->a f b console.log(diyTrim(' ffdaf ')); // ->ffdaf console.log(diyTrim('1 ')); // ->1 console.log(diyTrim(' f')); // ->f console.log(diyTrim(' a f b ')); // ->a f b console.log(diyTrim(' ')); // -> console.log(diyTrim(' ')); // -> console.log(diyTrim('')); // ->
正則表示式:
var str = ' djd jdj ';
var re = /\s+/g;
var n = str.replace(re,"");
console.log(n);