如何编辑此代码以删除字符串右端的空格

时间:2019-03-25 18:15:29

标签: javascript loops

'anyvalue'的输出将是'anyvalue' 它只删除左侧空白 我怎样才能使其仅在字符串的右侧起作用

我知道如何使用 String.prototype.replace String.prototype.substring 使其正常工作,但在这种情况下

function RmvLefttWhiteSpaces(string) {
var result = "";
var left = true;
for (var i = 0; i < string.length; i++) {
  if (left === true) {
    if (string.charAt(i) != ' ' && string.charAt(i) != '\t' && string.charAt(i) != '\n') {
        left = false;
    } 
  }
  if (left === false) {
    result += string.charAt(i);
  }
}

return result;

}

我希望('anyvalue')的输出为'anyvalue',但实际输出为'anyvalue'

2 个答案:

答案 0 :(得分:0)

除非您出于某些其他原因这样做,否则已经为您提供了一个函数:String.prototype.trimEnd()。

let val = ' anyvalue ';
let trimmed = val.trimEnd();

// frame 'trimmed' in '*' to show
// that there is no whitespace on
// the right.
console.log(`*${trimmed}*`);


修改:

您提到您曾经考虑过String.prototype.trimEnd()没有成功。也许您一直在想它应该像这样工作:

String.prototype.trimEnd(' anyvalue ');

实际上是这样的:

' anyvalue '.trimEnd();

'String.prototype'语句仅表示'trimEnd'是字符串 prototype 上的方法。
但是'anyvalue'是字符串 instance ,因此您可以直接从中调用'trimEnd'。

答案 1 :(得分:0)

您可以将String.prototype.replace()与正则表达式一起使用。

function RmvLefttWhiteSpaces(string) {
    var regex = /\s+$/gm
    return string.replace(regex, "")
}