#javascript #regex
#javascript #регулярное выражение
Вопрос:
Я пытаюсь создать регулярное выражение в JavaScript, которое содержит весь алфавит, %
и _
. Я написал это регулярное выражение для того, что не работает нормально. Кто-нибудь может мне помочь с этим?
Вот мое регулярное выражение:
^[^.<>(){}'amp;@#]*$
Комментарии:
1. Почему вы используете символьный класс для исключения случайного набора символов вместо того, чтобы «переводить» ваше фактическое требование в регулярное выражение?
2. Кроме того, «не работает нормально» не является полезным описанием проблемы. Что вы хотите сделать, каков текст, что вы ожидаете, что произойдет, и что происходит вместо этого?
Ответ №1:
Вот регулярное выражение, которое вы ищете:
const regex = /[A-Za-z_%]/g
Объяснение:
/.../
— Синтаксис регулярных выражений Javascript
[...]
— Группа возможных совпадений (exp. A или B или C и т.д.)
A-Za-z
— Каждая английская буква. (Верхний и нижний регистр)
_
— Символ подчеркивания
%
— Символ %.
g
— Суффикс глобального флага для продолжения сопоставления каждого разрешения.
Вы можете попробовать это в тестере регулярных выражений
Комментарии:
1. но если вы добавляете числа, это также принимает это, этого следует избегать.
2. Он работает нормально, но я использую это регулярное выражение в angular Validators.pattern(«/[A-Za-z_%] /g»), в этом случае он не работает должным образом, не могли бы вы просто дать мне знать, почему?
3. @Ashwanikumar Это не строка, это регулярное выражение. Его литералы — это косые
/PATTERN/
черты, тогда как строковые литералы — это кавычки'String'
/"String"
.4. @Ashwanikumar то, что сказал Оскар, правильно, но я не уверен, что это понятно. Удалите «» и используйте его как: Validators.pattern(/[A-Za-z_%]/g)
5. Я добавил вот так Validators.pattern(«[A-Za-z_%]»), все работает нормально, спасибо.