пожалуйста, помогите мне с моим регулярным выражением, мне нужно удалить первый и/или последний символ из строки, если это символ подчеркивания, например:
В результате все три примера должны иметь "строку".
username = document.querySelector("#username");
str = username.value.replace(/_\s*$/, "");
Это, конечно, работает, если последним символом является подчеркивание. Я попытался:
str = username.value.replace(/(_\s*$)(^_\s)/, "");
и
str = username.value.replace(/_\s*$|^_\s/, "");
Спасибо за вашу помощь.
@WiktorStribiżew Пожалуйста, добавьте свой комментарий к обману, если вы чувствуете
Попробуйте следующее:
str.replace(/^_*|_*$/g, '')
_
не является каким-либо специальным метасимволом регулярного выражения, и даже экранирование _
в некоторых разновидностях регулярных выражений (например, в .NET или даже в JS внутри класса символов, когда используется флаг u
) является ошибкой.
Похоже, вам нужно
.replace(/^\s*_|_\s*$/g, "")
, см. regex101.com/r/4kww8X/1