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

非正则表达式:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

衣乌安、

嘿嘿,好心人赏俩钱儿~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值