手写系列之剔除左右空格 - 图1


本文主要是收集一些剔除前后空格的方法,其实方法有很多但是大多都是大同小异,这里简单列举几个

方法1

  1. String(parseInt(str)).replace(/\s+$/gi, '')
  • 前面的空格可以利用parseInt的特性来做处理,前提是中间部分必须是连续的数字字符串,后面部分用正则直接替换

    方法2

    1. str.replace(/^\s+|\s+$/gi, '')
  • 前后都可以用正则直接替换空格

    方法3

    1. function trim(s) {
    2. s = s.replace(/^\s+/gi, '')
    3. const ws = /\s/
    4. i = s.length
    5. while (ws.test(s.charAt(--i)));
    6. return s.slice(0, i + 1)
    7. }
  • 前面部分用正则替换,后面部分通过逆行遍历得到不是空格的下标来替换

    方法4

    1. str.replace(/^\s*([\S\s]*?)\s*$/gi, '$1')
  • 通过懒惰匹配模式来替换括号的内容部分

    方法5

    1. str.replace(/^\s*(\S*(?:\s+\S+)*)\s*$/gi, '$1')
  • 使用非捕获分组,将中间的部分进行捕获,从而进行替换