Как я могу отредактировать этот код, чтобы удалить пробелы из правого конца строки - PullRequest
0 голосов
/ 25 марта 2019

выводом для '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;

}

Я ожидаю выводаof ('anyvalue'), чтобы быть 'anyvalue', но фактический результат - 'anyvalue'

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Вы можете использовать String.prototype.replace () с регулярным выражением.

function RmvLefttWhiteSpaces(string) {
    var regex = /\s+$/gm
    return string.replace(regex, "")
}
0 голосов
/ 25 марта 2019

Если вы не делаете это таким образом по какой-либо другой причине, для вас уже есть функция: 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' прямо из нее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...