本文中所有例子使用的字符串均为
letstr=‘ a b g f d d w ‘`;
去除字符串左侧空格
// 方式一function leftClear () {// for循环遍历数组 获取第一个不为空格字符的索引,并以此索引裁切字符串for (let i = 0; i < str.length; i++) {if (str[i] !== ' ') {return str.substring(i, str.length);}}}// 方式二// 调用现成方法str.trimLeft();str.trimStart();// 方式三// 使用正则表达式替换function clearRepL () {return str.replace(/^ */, '');}
去除字符串右侧空格
// 方式一function rightClear () {// for循环从尾至头遍历数组 获取第一个不为空格字符的索引,并以此索引裁切字符串for (let i = str.length - 1; i >= 0; i--) {if (str[i] !== ' ') {return str.substring(0, i + 1);}}// 方式二// 调用现成方法str.trimRight();str.trimEnd();// 方式三// 使用正则表达式替换function clearRepR () {return str.replace(/ *$/, '');}
同时去除字符串左右两侧空格
// 方式一function bothClear () {let newStr = ''; // 定义一个新字符串用来接收并返回完成后的结果for (let i = 0; i < str.length; i++) {if ( str[i] !== ' ') {newStr = str.substring(i, str.length); // 首先去除左侧空格break;}}for ( let i = newStr.length - 1; i >= 0; i--) {if (newStr[i] !== ' ') {return newStr.substring(0, i + 1); // 再返回去除右侧空格之后的字符串}}}// 方式二// 使用现成方法str.trim();// 方法三// 使用正则表达式function clearRepB () {return str.replace(/^ *(\S.*\S) *$/, '$1')}
去除字符串之间的空格
// 方式一function centerClear () {let newStr = ''; // 定义一个新字符接收处理后的字符并返回for (let i = 0; i < str.length; i++) {if (str[i] !== ' ') {// 通过遍历获取字符串左侧的空白字符newStr += str.substring(0, i);break;}}for (let i = 0; i < str.length; i++) {if (str[i] !== ' ') {// 循环遍历字符串 追加全部非空格字符newStr += str[i];}}for (let i = str.length -1; i >= 0; i--) {if (str[i] !== ' ') {// 再次遍历字符串,追加右侧的空白字符newStr += str.substring(i + 1, str.length);break;}return newStr}// 方式二// 使用正则表达式替换function clearRepC () {// 使用正则表达式捕获左侧空格 中间字符 右侧空格,并分为三个区域// 使用剩余操作符... 接收参数,参数第一个值为字符串本身,第二三四为传过来的三个捕获值return str.replace(/^(\s*)(\S.*\S)(\s*)$/, function (...arg) {// 使用扩展运算符... 可以快速的将字符串转为数组// 将捕获中的第二个进行筛选去除空格 然后拼接let newCenter = [...arg[2]].filter(item => item !== ' ').join('');return `${arg[1]}${newCenter}${arg[3]}`;})}
去除字符串中的全部空格
// 方式一function allClear () {let newStr = '';for (let i = 0; i < str.lentgh; i++) {if (str[i] !== '') {newStr += str[i];}}return newStr;}// 方式二// 使用es6 新语法[...str].filter(item => item !== ' ').join('')// 方式三// 使用正则表达式str.replace(/\s/g, '')
