Выражение регулярного выражения со специальным символом - PullRequest
0 голосов
/ 27 декабря 2018

Я использую это регулярное выражение:

let regex = /([a-z])|([A-Z])|([0-9])|([$!@.-])/gu;

Иметь в четырех четырех группах (верхний регистр), (верхний регистр), (число), (специальный символ).

Для этих четырех групп я использую цикл, в котором группы составляют $ + i до пяти:

arrayGroup.push(valueToCompare.replace(stringRegex, "$" + i));

Моя проблема заключается в следующем:

Когда я использую, например, # {[| `\ ^ @] (все специальные символы), совпадения в четырех группах.Я не понимаю, почему?

Пример с этой строкой:

let string = "groupGROUP123@!-"

$1 = group $2 = GROUP $3 = 123 $4 = @!-

Здесь все в порядке.Теперь с другими специальными символами, не указанными в регулярном выражении

let string = "groupGROUP123@!#{[{[@^~]-"

$1 = group#{[{[@^~] $2 = GROUP#{[{[@^~] $3 = 123#{[{[@^~] $4 = @!-#{[{[@^~]

Это моя проблема

1 Ответ

0 голосов
/ 27 декабря 2018

В вашем регулярном выражении вы соответствуете всем группам, независимо от того, где они есть.

Регулярное выражение должно быть таким, например:

([a-z]+)([A-Z]+)([0-9]+)([$!@.-]+)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...