js使用正则完成字符串去除空格(前后空格, 前空格, 后空格, 全部空格,中间空格)

需求: 去除字符串

1) 前后空格

2) 前空格

3) 后空格

4) 中间空格

5) 去除中间空格(这个方法值得讨论)

let str = " 佐 助 " // 佐助中间有空格
let res = "" //用来保存处理后的结果

1) 去除前后空格

let removeSpacesBoth = function (str) {
    let reg0 = /^\s*|\s*$/g // \s 空字符, 任意多个空格开头 或者 任意多个空格结尾, 全局匹配
    let reg1 = /^\s+|\s+$/g
    return str.replace(reg0, "") //这里使用 reg0 和 reg1都可以
}

res = removeSpacesBoth(str)
console.log(res)//佐 助
console.log(res.length)// 3

2) 去除开头空格

let removeSpaceHead = function (str) {
    let reg2 = /^\s*/
    let reg3 = /^\s+/
    return str.replace(reg2, "")
}

res = removeSpaceHead(str)
console.log(res)//佐 助
console.log(res.length)//4

3) 去除结尾空格

let removeSpaceTail = function (str) {
    let reg4 = /\s*$/
    let reg5 = /\s+$/
    return str.replace(reg4,"")
}

res = removeSpaceTail(str);
console.log(res) // 佐 助
console.log(res.length) //4

4) 去除全部空格

let removeSpaceAll = function (str){
    let reg5 = /\s/g
    return str.replace(reg5, "")
}

res = removeSpaceAll(str)
console.log(res) //佐助
console.log(res.length)//2

5) 去除中间空格

我在这里的思路不是直接使用正则来匹配, 因为想不出来(哭笑);

1. 使用正则将头尾空格部分索引取出

2. 截取头尾空格部分

3. 去除全部空格

4. 返回拼接结果

let removeSpaceCenter = function (str){
    let leftIndex = str.search(/[^\s]/) //找到左索引
    let rightIndex = str.search(/\S\s*$/)+1 //找到右空格索引
    let leftSpace = str.slice(0,leftIndex) //左空格
    let rightSpace = str.slice(rightIndex) //右空格

    str = removeSpaceAll(str) //去除全部空格(这个方法是上面写到的)等价于下面的注释代码
    // str.replace(/\s/g, "")

    return  leftSpace + str + rightSpace //返回拼接结果
}

res = removeSpaceCenter(str)
console.log(res)// 佐助
console.log(res.length) //4

如果您能想出更好的办法, 或者能够直接使用正则进行匹配,欢迎在评论区或者私信赐教

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值