Подтвердить что ты не робот

Javascript regex для специальных символов

Я пытаюсь создать проверку для поля пароля, которая позволяет использовать только символы a-zA-Z0-9 и [email protected]#$%^&*()_+-=

Кажется, я не понимаю, как это.

Какая разница при использовании regex = /a-zA-Z0-9/g and regex = /[a-zA-Z0-9]/ и каких символов из [email protected]#$%^&*()_+-= необходимо экранировать?

То, что я пробовал до сих пор:

var regex = /[email protected]#\$%\^\&*\)\(+=._-/g

но без успеха

4b9b3361

Ответ 1

var regex = /^[[email protected]#\$%\^\&*\)\(+=._-]+$/g

Должен работать

Также может потребоваться минимальная длина, например 6 символов

var regex = /^[[email protected]#\$%\^\&*\)\(+=._-]{6,}$/g

Ответ 2

более простой способ соответствовать специальным символам:

/\W|_/g

\ W Соответствует любому символу, который не является символом слова (буквенно-цифровой и подчеркивание).

Подчеркивание считается специальным символом, поэтому добавьте логическое значение, соответствующее либо специальному символу, либо _

Ответ 3

Какая разница?

/[a-zA-Z0-9]/ - это класс символов, который соответствует одному символу внутри класса. Он состоит из трех диапазонов.

/a-zA-Z0-9/ означает буквальную последовательность этих 9 символов.

Какие символы из [email protected]#$%^&*()_+-= необходимы для экранирования?

Внутри класса символов только минус (если не в конце) и обводка (если в начале). Вне charclass .$^*+() имеют особое значение и должны быть экранированы, чтобы соответствовать буквально.

допускает только символы a-zA-Z0-9 и [email protected]#$%^&*()_+-=

Поместите их в класс символов, затем пусть repeat и потребует сопоставить всю строку с ними anchors:

var regex = /^[[email protected]#$%\^&*)(+=._-]*$/

Ответ 4

Как насчет: -

var regularExpression = /^(?=.*[0-9])(?=.*[[email protected]#$%^&*])[[email protected]#$%^&*]{6,}$/;

Он позволит не менее 6 символов, включая числа, алфавиты и специальные символы

Ответ 5

Есть некоторые проблемы с выше написанным Regex.

Это работает отлично.

^[a-zA-Z\d\-_.,\s]+$

Разрешены только специальные символы, которые могут быть расширены после запятой.

Ответ 6

это фактическое совпадение регулярных выражений:

/[-!$%^&*()_+|~='{}[:;<>?,[email protected]#\]]/g

Ответ 7

// Regex for special symbols

var regex_symbols= /[-!$%^&*()_+|~='{}\[\]:\/;<>?,[email protected]#]/;

Ответ 8

Regex для минимум 8 символов, одного алфавита, одного числового и одного специального символа:

/^(?=.*[A-Za-z])(?=.*\d)(?=.*[[email protected]#$%^&*])[A-Za-z\[email protected]#$%^&*]{8,}$/

Ответ 9

Это регулярное выражение хорошо работает для подтверждения пароля:

/[ !"#$%&'()*+,-./:;<=>[email protected][\\\]^_'{|}~]/

Этот список специальных символов (включая пробелы и знаки препинания) взят здесь: https://www.owasp.org/index.php/Password_special_characters. Это было немного изменено, потому что для правильной работы регулярного выражения пришлось экранировать обратную косую черту ('\') и закрывающую скобку (']'). Вот почему были добавлены два дополнительных символа обратной косой черты.

Ответ 10

Вы можете быть конкретны, проверяя на недопустимые символы. Это вернет истину для всего, что не буквенно-цифровое и пробел:

var specials = /[^A-Za-z 0-9]/g;
return specials.test(input.val());

Ответ 11

Полный набор специальных символов:

/[\!\@\#\$\%\^\&\*\)\(\+\=\.\<\>\{\}\[\]\:\;\'\"\|\~\'\_\-]/g

Чтобы ответить на ваш вопрос:

var regular_expression = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\)\(+\=\._-]+$/g