Я намагаюся створити Regex-тест у JavaScript, який перевірятиме рядок, щоб містити будь-який із цих символів:
!$%^&*()_+|~-=`{}[]:";'<>?,./
Більше інформації, якщо вас цікавить :)
Це для досить класної програми для зміни пароля, над якою я працюю. Якщо ви зацікавлені, ось інша частина коду.
У мене є таблиця, в якій перераховані вимоги до пароля, і, оскільки кінцеві користувачі вводять новий пароль, він перевірить масив регулярних виразів і поставить галочку у відповідному рядку таблиці, якщо це ... перевірить :) Мені просто потрібно додати цей замість 4-го елемента validationмасиву.
var validate = function(password){
valid = true;
var validation = [
RegExp(/[a-z]/).test(password), RegExp(/[A-Z]/).test(password), RegExp(/\d/).test(password),
RegExp(/\W|_/).test(password), !RegExp(/\s/).test(password), !RegExp("12345678").test(password),
!RegExp($('#txtUsername').val()).test(password), !RegExp("cisco").test(password),
!RegExp(/([a-z]|[0-9])\1\1\1/).test(password), (password.length > 7)
]
$.each(validation, function(i){
if(this)
$('.form table tr').eq(i+1).attr('class', 'check');
else{
$('.form table tr').eq(i+1).attr('class', '');
valid = false
}
});
return(valid);
}
Так, існує також відповідна перевірка на стороні сервера!