本文中所有例子使用的字符串均为
let
str=
‘ 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, '')