SO buddies, greetings. У меня есть некоторые требования к паролю, которые мне нужно реализовать, и одно из требований - строка не может начинаться или заканчиваться специальным символом. Я провел некоторое время в Googling, но мой RegEx kung-fu - это уровень кимосабе.Строка регулярных выражений не начинается или не заканчивается специальным символом
Только в случае, если вы заинтересованы в какой-то код, вот JavaScript:
Примечание: Да, пароли также проверяются на сервере, а :) Следующий фрагмент кода запускает тесты RegEx и просто проверяет, или x - элемент строки, связанный с правилом пароля.
var validate = function(password){
valid = true;
var validation = [
RegExp(/[a-z]/).test(password), RegExp(/[A-Z]/).test(password), RegExp(/\d/).test(password),
RegExp(/[-!#$%^&*()_+|~=`{}\[\]:";'<>?,./]/).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 == true)
$('.form table tr').eq(i+1).attr('class', 'check');
else{
$('.form table tr').eq(i+1).attr('class', '');
valid = false
}
});
return(valid);
}
Я не уверен, если это ошибка, но я вижу, что регулярное выражение RegExp («12345678») не имеет каких-либо ограничителей, которые могли бы быть его ? – rednaw
Что не так с '/^[\ d \ w] + $/i'? – Alexander
@rednaw в коде отсутствует какая-либо ошибка, необходимо выполнить новое требование. Основываясь на ответе ниже, мне кажется, что мне нужно что-то вроде '/^[^ a-z]. * /', Но мне также нужно включить числа. Другими словами, я удостоверяюсь, что пароль начинается и заканчивается буквой или номером. – pixelbobby