js------去除字符串中的空格(五種方式,總有一種適合你)

方法1:(最常用)全部去除掉空格

 var str = '  abc d e f  g ';
        function trim(str) {
            var reg = /\s+/g;
            if (typeof str === 'string') {
                var trimStr = str.replace(reg,'');
            }
            console.log(trimStr)
        }
        trim(str)

方法二:(強烈推薦)全部去除


function trimAll(ele){
    if(typeof ele === 'string'){
       return ele.split(' ').join('');
           
    }else{
        console.error(`${typeof ele} is not the expected type, but the string type is expected`)
    }
  
}

trimAll(str)  // 1234456

方法三:指定位置清楚空格(第二個參數控制位置)

function deleSpac(str,direction) { // 1 串的模板 2 清除哪邊空格
            if(typeof str !== 'string'){ // 限制下條件,必須是字符串
                 console.error(`${typeof ele} is not the expected type, but the string type is expected`)
                return false
            }
            let Reg = '';
            switch(direction) {
                case 'left' : // 去除左邊
                    Reg = /^[\s]+/g;
                    break;
                case 'right' : // 去除右邊
                    Reg = /([\s]*)$/g;
                    break;
                case 'both' : // 去除兩邊
                    Reg = /(^\s*)|(\s*$)/g
                    break;
                default :   // 沒傳默認全部,且爲下去除中間空格做鋪墊
                    Reg = /[\s]+/g;
                    break;
            }
            let newStr = str.replace(Reg,'');
            if ( direction == 'middle' ){
                let RegLeft = str.match(/(^\s*)/g)[0]; // 保存右邊空格
                let RegRight = str.match(/(\s*$)/g)[0]; // 保存左邊空格
                newStr = RegLeft + newStr + RegRight; // 將空格加給清完全部空格後的字符串
            }
            return newStr;
        }

方法四:也可制定位置參數

function delSpace (str, pos) {
  let reg = /\s+/g
  switch (pos) {
    case 'l':
      reg = /^\s+/g
      break
    case 'r':
      reg = /\s+$/g
      break
    case 'c':
      reg = /(?<=\w)\s+(?=\w)/g
      break
    case 'lr':
      reg = /(^\s+)|(\s+$)/g
      break
    case 'a':
      reg = /\s+/g
      break
  }

  return str.replace(reg, '')
}

方法五:與方法四類似,不過採用了原生的語法

function trim(str, pos) {
    let ret = str
    switch(pos) {
        case 'l':
            ret = str.trimStart()
            break
        case 'r':
            ret = str.trimEnd()
            break
        case 'lr':
            ret = str.trimStart().trimEnd()
            break
        case 'm':
            ret = str.replace(/(?<=[^\s])\s*(?=[^\s])/g, '')
            break
        default:
            ret = str.replace(/\s/g,'')
    }
    return ret
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章