溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript去除字符串兩端空格的方法有哪些

發(fā)布時(shí)間:2023-03-16 10:55:10 來(lái)源:億速云 閱讀:84 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下JavaScript去除字符串兩端空格的方法有哪些的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

JavaScript去除字符串兩端空格的三種方法:

//方法一:正則表達(dá)式
function _trim(string) {
    // 補(bǔ)全代碼
    var reg=/^\s*|\s*$/g;
    //使用正則表達(dá)式,\s為空格,^\s為開(kāi)頭的空格,*代表0個(gè)或多個(gè),\s*$為結(jié)尾的零個(gè)或多個(gè)空格
    string=string.replace(reg,'');
    return string;    
    //return string.replace(/^\s*|\s*$/g,'');
    //return string.replace(/^\s|\s$/g,'');也能通過(guò)測(cè)試,*有沒(méi)有,有幾個(gè)都沒(méi)有影響
}
 
//方法二:trim函數(shù):除去字符串開(kāi)頭和末尾的空格
function _trim(string) {
    return string.trim();
}
 
//還有方法三:(法三屬實(shí)是沒(méi)想到,看別人的)
let arr = string.split('');
    let num = arr.indexOf(' ');
    // 先去除首端空格
    while (num === 0) {
        arr.splice(num, 1); // 這里可用 arr.shift()
        num = arr.indexOf(' '); // 刪除后,重新賦值,再判斷
    }
    // 第二步去除尾端空格
    let numRev = arr.indexOf(' ', -1); // -1,從最后一個(gè)數(shù)字開(kāi)始查找,順序從前往后
    while (numRev === arr.length - 1) {
        arr.splice(arr.length - 1, 1) // arr.length - 1,最后一項(xiàng)的索引,可換 arr.pop()
        numRev = arr.indexOf(' ', -1); // 刪除后,重新賦值,再判斷
    }
    return string = arr.join('');

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

方法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)

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

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

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

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 :   // 沒(méi)傳默認(rèn)全部,且為下去除中間空格做鋪墊
                    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;
        }

方法四:也可制定位置參數(shù)

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, '')
}

方法五:與方法四類似,不過(guò)采用了原生的語(yǔ)法

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
}

以上就是“JavaScript去除字符串兩端空格的方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI