Как разработать регулярное выражение в javascript?

#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_%]»), все работает нормально, спасибо.