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

非正则表达式:

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

 

阅读更多

没有更多推荐了,返回首页