Регулярное выражение требуется для добавления пользовательского метода проверки в jquery.

Я хочу выполнить проверку поля пароля в форме входа. Требование к паролю состоит в том, что пароль должен состоять из букв и цифр. Я пишу новую функцию проверки для выполнения вышеуказанного требования и добавляю ее в jQuery, используя validator.addmethod(). Код функции выглядит следующим образом

$.validator.addMethod('alphanum', function (value) {
    return /^[a-zA-Z 0-9]+$/.test(value);
}, 'Password should be Alphanumeric.');

Проблема в том, что эта функция не работает должным образом, то есть она принимает буквенный пароль (например, abcdeSD) и числовой пароль (например, 4255345) и не выдает сообщение об ошибке для таких входов.

  1. так что в моем коде что-то не так?
  2. неверно ли написанное регулярное выражение, и если да, то каким будет правильное регулярное выражение?

person Param-Ganak    schedule 15.02.2010    source источник
comment
Примите несколько ответов! У вас ставка 0%.   -  person Skilldrick    schedule 15.02.2010
comment
Привет Гамбо! Моя цель проверить пароль - избежать инъекции sql, потому что я проверяю пароль.   -  person Param-Ganak    schedule 15.02.2010
comment
Если SQL-инъекция является вашей единственной причиной для проверки, то это неправильный способ сделать это. Похоже, вы пытаетесь побудить людей повысить надежность пароля (но вы разрешаете пароли длиной 1?).   -  person Mark Byers    schedule 15.02.2010
comment
Спасибо, Марк! за ваш комментарий, но я не разрешаю пароли длиной 1. Я проверил длину пароля, используя maxlength и minlength.   -  person Param-Ganak    schedule 15.02.2010


Ответы (3)


Используйте негативные прогнозы, чтобы запретить то, что вам не нужно:

^(?![a-zA-Z]+$)(?![0-9]+$)[a-zA-Z 0-9]+$
person Mark Byers    schedule 15.02.2010
comment
Спасибо, Марк! Регулярное выражение, которое вы дали, работает идеально. большое спасибо - person Param-Ganak; 15.02.2010

Пароль должен содержать только буквы и цифры

/^[a-zA-Z0-9]+$/

Он должен содержать алфавит(ы)

/[a-zA-Z]+/

Он должен содержать цифру(ы)

/[0-9]+/

И эти

/^[a-zA-Z0-9]+$/.test(value) && /[a-zA-Z]+/.test(value) && /[0-9]+/.test(value)
person Anurag    schedule 15.02.2010

Используйте это выражение для пароля для javascript:

/((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%_!]).{8,8})/

Вы можете добавить любые специальные символы в выражение.

Вручную добавьте символы для [@#$%_!] внутрь.

person Dhanasekaran    schedule 19.09.2017