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