在不使用字符串方法修剪的情况下删除空间

时间:2018-07-15 10:40:45

标签: javascript function trim

如何在不删除字符串之间和右边的空格的情况下删除所有左边的空格?而且,当我更改str的值时,结果将相同。只会删除左侧的空间。

function trimLeftSpace() {
    var str = "   Angry Bird   ";
    var splitTrim = str.split('');
    var trimStr = "";
    for (var index = 0; index < splitTrim.length; index++) { //trim left space
        if(splitTrim[index] != " ") {
            trimStr += str[index];
        }
    }
    return trimStr;
 }

6 个答案:

答案 0 :(得分:2)

要修剪字符串的开头,请使用简单的regex替换字符串开头的空格:

var str = "   Angry Bird   ";

function trimLeftSpace(str) {
  return str.replace(/^\s+/, '');
}

console.log('"' + trimLeftSpace(str) + '"');

或仅使用.trimStart()

var str = "   Angry Bird   ";

function trimLeftSpace(str) {
  return str.trimStart();
}

console.log('"' + trimLeftSpace(str) + '"');

答案 1 :(得分:2)

您当前的解决方案将创建一个新字符串,其中包含原始字符串的所有非空格字符,您需要在找到非空格字符后立即停止寻找空格。这是一个示例:

function trimLeftSpace(str) {
    var doneTrimming = false
    var ret = ""
    for (var index = 0; index < str.length; index++) {
        if(str[index] !== ' '){
            doneTrimming = true
        }
        if(doneTrimming){
            ret += str[index]
        }
    }
    return ret;
}

var result = trimLeftSpace("   Angry Bird   ");
console.log("|"+result+"|");

答案 2 :(得分:1)

您可以尝试用正则表达式替换:

var str = "   Angry Bird   ";
str = str.replace( new RegExp("^\\s+", "gm"),"");
console.log('"' + str + '"');

答案 3 :(得分:0)

这将删除字符串左侧的所有空格:

function trimLeftSpace(str) {
  var result = "";
  for(var i = 0; i < str.length; i++) {
    if(str[i] != " ") {
      return str.slice(i);
      break;
    } else {
      result += str[i];
    }
  }
  return result;
}

console.log(trimLeftSpace("   Angry Birds   Angry Birds"));

答案 4 :(得分:0)

尝试

function trimLeftSpace(str) {
    return str.replace(/\s+$/, '')
}

var result = trimLeftSpace("   Angry Bird   ");
console.log("|"+result+"|");

答案 5 :(得分:0)

如果您要使用函数代替其他答案中的正则表达式解决方案,请创建一个查找第一个非空格字符的函数,然后使用slice仅剪切后面的字符串部分它:

function customTrim(str) {
  for(var i = 0; i < str.length; i++) {
    if(str.charAt(i) !== " ") {
      return str.slice(i);
    }
  }
}

var res = customTrim("    Snake Shot    ");
console.log('"' + res + '"');

注释:

  • 这仅查找空格' '。如果要查找选项卡'\t',换行符'\n',则只需将它们添加到if测试中(用&&对其进行分隔)。
  • 如果传递的是空字符串或仅空格字符串,则返回undefined;如果不希望这样做,则只需在函数底部返回一个空字符串,使其成为默认返回值。