JavaScript 删除一个字符串中的指定字符

以删除一个字符串中的空格为例。

  • 删除一个字符串中的所有指定字符
var stripAll = function(s, d) {
    var str = "";
    var arr = new Array();
    for (var i = 0; i < s.length; i++) {
        if (s[i] !== d) {
            arr.push(i);
        }
    }
    for (var j = 0; j < arr.length; j++) {
        str = str + s[arr[j]];
    }
    console.log("\"" + str + "\"");
    return str;
}

// 测试函数
stripAll('  hello', " ");
stripAll(' h  ello  ', " "); 
stripAll('', " ");
stripAll('    ', " ");

得到结果:

"hello"
"hello"
""
""
  • 删除一个字符串开头的指定字符
var strip_left = function(s) {
    while (s.startsWith(" ")) {
        s = s.slice(1);
    }
    console.log("\"" + s + "\"");
    return s;
}

// 测试函数
strip_left('  hello');
strip_left(' hello  ');
strip_left('');
strip_left('    ');

得到结果:

"hello"
"hello  "
""
""
  • 删除一个字符串结尾的指定字符
  • 方法一
var strip_right = function(s) {
    var str = s;
    for (var i = s.length - 1; i >= 0; i--) {
        var char = s[i];
        if (char == ' ') {
            str = s.slice(0, i);
        } else {
            break;
        }
    }
    console.log("\"" + str + "\"");
    return str;
}
// 测试函数
strip_right('  hello');
strip_right(' hello  ');
strip_right('');
strip_right('    ');

得到结果:

"  hello"
" hello"
""
""
  • 方法二
var strip_right = function(s) {
    var index = s.length
    for (var i = s.length - 1; i >= 0; i--) {
        var char = s[i];
        if (char != ' ') {
            index = i + 1;
            break;
        }
        if (i == 1) {   // 纯空格的情况
            index = 0;
            break;
        }
    }
    console.log("\"" + s.slice(0, index) + "\"");
    return s.slice(0, index + 1)
}
// 测试函数
strip_right('  hello');
strip_right(' he llo  ');
strip_right('');
strip_right('    ');

得到的结果:

"  hello"
" he llo"
""
""
  • 删除一个字符串开头和结尾的指定字符
var strip_left = function(s, d) {
    while (s.startsWith(d)) {
        s = s.slice(1);
    }
    return s;
}

var strip_right = function(s, d) {
    var str = s;
    for (var i = s.length - 1; i >= 0; i--) {
        var char = s[i];
        if (char == d) {
            str = s.slice(0, i);
        } else {
            break;
        }
    }
    return str;
}

var strip = function(s, d) {
    strip_left(strip_right(s, d), d);
    console.log("\"" + strip_left(strip_right(s, d), d) + "\"");
    return strip_left(strip_right(s, d), d);
}

// 测试函数
strip('  hello', " ");
strip(' he llo  ', " ");
strip('', " ");
strip('    ', " ");

得到结果:

"hello"
"he llo"
""
""

推荐阅读更多精彩内容