js的trim函数实现
js没有去掉字符串两侧空格的方法。要实现这一效果目前想到2种方式,一个是正则匹配,还一个是循环字符串判断两边是否空格。
当然还要注意区分英文空格、中文空格、tab空格、连续空格的概念,这里只以英文空格为例。
正则方式:
function trim(str) {
return str.replace(/^\s*/,"");//^符号是开始
return str.replace(/\s*$/,"");//$符号是结束
return str.replace(/(^\s*)|(\s*$)/g,""); //两边
}
循环方式:
function trim(str) {
let startIndex = -1;
for(let i = 0; i < str.length; i++) {
if(str.charAt(i) !== ' ') {
startIndex = i;
break;
}
}
if(startIndex === -1) { //全空格
return '';
}
let endIndex = str.length - 1;
for(let i = endIndex; i >= 0; i--) {
if(str.charAt(i) !== ' ') {
endIndex = i;
break;
}
}
return str.slice(startIndex, endIndex);
}