删除 space 而不使用字符串方法 trim

Remove space without using string method trim

如何删除所有左边的 space 而不删除字符串的 between & 右边的 space?而且当我更改 str 的值时,结果将是相同的。只会去掉左边的space

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;
 }

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

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

到trim字符串开头,使用简单的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) + '"');

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

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+"|");

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

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"));

试试这个

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

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

如果您想使用函数而不是其他答案中的正则表达式解决方案,则创建一个函数来查找第一个非 space 字符,然后使用 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 + '"');

备注:

  • 这只会查找 spaces ' '。如果您想查找制表符 '\t'、换行符 '\n',...然后只需将它们添加到 if 测试(用 && 分割它们)。
  • 如果传递空字符串或仅传递 space 字符串,则 undefined 被 return 编辑,如果您不想那样,则只需 return 一个空字符串函数底部的字符串,使其成为默认 return 值。

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

   let variable = "hello world";
   let removeRegex = /^\s+|\s+$/g;
   let removeSpace = variable.replace(removeRegex,"");
   console.log(removeSpace);