#javascript #jquery #regex
#javascript #jquery #регулярное выражение
Вопрос:
Я хочу удалить символ% из моей строки, если символ% присутствует в строке, тогда он должен проверить, находится ли он в начале или в конце, затем он должен обрезать значение, а затем предоставить результат.
Eg: var str = "Value%" or "%Value" or "%Value%"
The result should be = Value.
Eg: var str="Va%ue"
The result should be =Va%ue.
Eg: var str= "Value"
The result should be = Value.
Заранее спасибо
Комментарии:
1. На самом деле не стоит отвечать, но чтобы вы начали:
str.replace(/^%|%$/g, "")
2. Спасибо! это работает
Ответ №1:
str = (str[0] == '%' || str.endsWith('%')? str.replace(/%/g, '') : str);
Перед заменой проверьте, начинается или заканчивается строка с %
Комментарии:
1. это приведет к удалению%, даже если оно находится в середине, если оно начинается с %, например: str = ‘%test%test’
Ответ №2:
Ваше регулярное выражение в основном должно иметь две альтернативы в сочетании со знаком «или». Вы используете ^
для обозначения начала и $
для обозначения окончания, затем объединяете их с |
.
Регулярное выражение для поиска процентов: ^%|%$
.
Если вы добавите это в replace()
функцию и добавите флаг глобального поиска g
, вы можете легко достичь того, что ищете:
const percentLookupRegex = /^%|%$/g;
str.replace(percentLookupRegex, '');
Вот живой пример:
https://regex101.com/r/nAK64n/2
Комментарии:
1. Знак «или» называется чередованием в регулярном выражении, а
^
и$
называются якорями.
Ответ №3:
Если вы хотите использовать регулярное выражение, вам следует изучить привязки ^
и $
Например.
str.replace(/^%/, '');
Заменит %
начало строки на ничто.
Альтернативный подход заключается в использовании startsWith
и endsWith
, а затем соответствующим образом разрезать строку:
if (str.startsWith('%') {
str = str.slice(1);
}
Удаление a %
в конце строки оставлено в качестве упражнения для читателя
Ответ №4:
str = (str.indexOf('%') === 0) ? str.substring(1) : str; // check for first character
str = (str.lastIndexOf('%') === (str.length - 1)) ? str.substring(0, str.length - 1) : str; //check for last character
Это проверит только первый и последний символ и удалит только те