Вы можете попробовать использовать для этого позитивные взгляды.Рассмотрим следующий шаблон регулярных выражений:
^(?=.* )
(?=.*\d)
(?=.*[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/])
(?=.*[\p{Cyrillic}])
[ \d-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/\p{Cyrillic}]+
$
Это подтверждает, что пробел, число, символ и знак кириллицы встречаются во входных данных.Затем он соответствует одному или нескольким из этих четырех классов символов.
Ваш обновленный код:
function myCyrillicDigitsAndSpaceValidator(text){
return XRegExp("^(?=.* )(?=.*\\d)(?=.*[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/])(?=.*[\\p{Cyrillic}])[ \\d-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/\\p{Cyrillic}]+$").test(text);
}