буквенно-цифровой не работает в jquery


person JavaH    schedule 10.07.2012    source источник


Ответы (2)


Если ваш пароль должен содержать все регистры: заглавные буквы, строчные буквы и цифры, то вам нужно создать 3 регулярных выражения:

var regexps = [/[A-Z]/,   //capital letter
              /[a-z]/,    //small letter
              /\d/ ];     //numeric digit
//This regexp is for assuring that 
//password does not contain other symbols than alphanumerics
var nonAlphanumericRegExp = /[^0-9a-zA-Z]/;

затем подтвердите следующим образом:

if(regexps.some(function(value){  return !value.test(password.value); }) ||
       nonAlphanumericRegExp.test(password.value)){
    alert('Password must be alphanumeric');   
    signupForm.password.focus();   
    return false; 
}

Демо

документы:

Array.some()

RegExp.test()

person Engineer    schedule 10.07.2012
comment
что такое()? тогда значение.тест? - person JavaH; 10.07.2012
comment
@JavaH Смотрите мое обновление, я немного изменил его. - person Engineer; 10.07.2012

Я бы предложил, возможно:

/([a-z])([0-9])/

Что выглядит как группа из [a-z] букв и [0-9] цифр.

Проблема в исходном выражении, по-видимому, заключается в том, что оно искало только одну группу символов, совпадающую с любой частью диапазона, определенного как a-z, A-Z или 0-9, что соответствует истине только для: цифры, только буквы или цифры и буквы.

Приведенное выше регулярное выражение изменено на:

/(([a-z])+([0-9]))|(([0-9])+([a-z]))/

демонстрация JS Fiddle.

Причина изменения, описанного выше, заключается в том, что RegExp будет соответствовать оба a1 и 1a, используя | (RegExp or) для соответствия одному или другому, но по-прежнему будет возвращать false, если ни одно из них не найдено. и true, если он найден.

person David says reinstate Monica    schedule 10.07.2012
comment
буквы = /^[([az])([0-9])]+$/; это верно? - person JavaH; 10.07.2012
comment
Близко, но я бы опустил ^ и $, если только вам не нужно, чтобы первый символ был буквой, а последний - числом? Я также пересмотрел RegExp, как показано в ответе. - person David says reinstate Monica; 10.07.2012
comment
ЕГО РАБОТАЕТ....ДОЛЖНА ДОПУСКАТЬ ОДНУ ЗАГЛАВНУЮ БУКВУ...МНЕ НУЖНЫ ЛЮБЫЕ ЗАГЛАВНЫЕ ИЛИ СТРОЧНЫЕ БУКВЫ И ЦИФРЫ - person JavaH; 10.07.2012
comment
Пожалуйста, не КРИЧЬ. Если это не работает должным образом, просто скажите об этом, и я посмотрю на это. знак равно - person David says reinstate Monica; 10.07.2012
comment
круто ... я просто запутался, подожди, я проверю - person JavaH; 10.07.2012