RegEx для сопоставления кириллицы, чисел, пробела и некоторых специальных символов (- \,: - PullRequest
3 голосов
/ 21 мая 2019

У меня есть следующее RegExp в текущем веб-приложении.

function myCyrillicDigitsAndSpaceValidator(text){
    return XRegExp("^[\\p{Cyrillic}0-9]+").test(text);
}

Как видите, я использую библиотеку XRegExp javasciprt. В настоящее время этот regxep проверяет, имеет ли кириллица пробел + числа Я хочу расширить его и проверить:

Это кириллица

Есть место

У него есть номера

У него есть специальные символы

XregxExp version is 2.0.0 if it does matter

Правильные примеры:

1 Май

-

Май 25\5

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Вы можете попробовать использовать для этого позитивные взгляды.Рассмотрим следующий шаблон регулярных выражений:

^(?=.* )
 (?=.*\d)
 (?=.*[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/])
 (?=.*[\p{Cyrillic}])
 [ \d-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/\p{Cyrillic}]+
$

Это подтверждает, что пробел, число, символ и знак кириллицы встречаются во входных данных.Затем он соответствует одному или нескольким из этих четырех классов символов.

Ваш обновленный код:

function myCyrillicDigitsAndSpaceValidator(text){
    return XRegExp("^(?=.* )(?=.*\\d)(?=.*[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/])(?=.*[\\p{Cyrillic}])[ \\d-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/\\p{Cyrillic}]+$").test(text);
}
0 голосов
/ 21 мая 2019

Вы можете просто добавить любые специальные символы и другие символы, которые вы хотите, в список, который у вас уже есть, например:

^[\\p{Cyrillic}0-9#$%^&\-\s\\]+$

или

([\\p{Cyrillic}0-9\\s\-#$%^&\\]+)

DEMO

enter image description here

RegEx

Если это выражение нежелательно, его можно изменить или изменить в regex101.com .

RegEx Circuit

jex.im также помогает визуализировать выражения.

enter image description here

...