1. 程式人生 > >去除字串首尾空格(全形&半形)

去除字串首尾空格(全形&半形)

非正則表示式:

全形空格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);