Удалить все экземпляры charater из начала и конца строки

Я пытаюсь найти решение, чтобы удалить все экземпляры данного символа из начала и конца строки.

Пример:

// Trim all double quotes (") from beginnning and end of string

let string = '""and then she said "hello, world" and walked away""';

string = string.trimAll('"',string); 

console.log(string); // and then she said "hello, world" and walked away 

Эта функция будет эффективно trim какие replaceAll это к replace,

Мое решение заменить все:

String.prototype.replaceAll = function(search, replacement) {
    return this.replace(new RegExp(search, 'g'), replacement);
};

Это, конечно, заменит все экземпляры символа в строке, а не просто образует оба конца.

Какой Regex будет лучшим в этом случае?

2 ответа

Один вариант использует replace:

var string = '""and then she said "hello, world" and walked away""';
string = string.replace(/"*(.*[^"])"*$/, "$1");
console.log(string);

В этом случае вы можете использовать:

string  = string.replace(/^"|"$/g, '');

Если вы хотите удалить (обрезать) все такие символы (linke "), используйте:

string = string.replace(/^["]+|["]+$/g, '');

Таким образом, вы также можете определить rtrim (правая обрезка) или ltrim:

// ltirm
string = string.replace(/^"/, '');

// rtirm
string = string.replace(/"$/, '');

Я надеюсь, что это поможет вам.

Другие вопросы по тегам