Подовжуючи відповідь PeterTheNiceGuy:
$.validator.addMethod(
"regex",
function(value, element, regexp) {
if (regexp.constructor != RegExp)
regexp = new RegExp(regexp);
else if (regexp.global)
regexp.lastIndex = 0;
return this.optional(element) || regexp.test(value);
},
"Please check your input."
);
Це дозволить вам передати об'єкт регулярного вираження.
$("Textbox").rules("add", { regex: /^[a-zA-Z'.\s]{1,40}$/ });
Скидання lastIndex
властивості необхідно, коли на g
об'єкті встановлено -flag RegExp
. В іншому випадку він почне перевірку з позиції останнього збігу з цим регулярним виразом, навіть якщо тема теми є іншою.
Деякі інші ідеї у мене полягали в тому, щоб дозволити вам використовувати масиви регулярних виразів, а ще одне правило для заперечення регексу:
$("password").rules("add", {
regex: [
/^[a-zA-Z'.\s]{8,40}$/,
/^.*[a-z].*$/,
/^.*[A-Z].*$/,
/^.*[0-9].*$/
],
'!regex': /password|123/
});
Але їх реалізація, можливо, буде занадто багато.