Расширение ответ 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/
});
Но осуществление тех бы, возможно, слишком много.
OMG это ** НЕ ** есть регулярное выражение проверки ?! – 2009-12-08 16:06:38
Я хочу сказать, кто захочет regex для валидации в любом случае ... ...;) – jamiebarrow 2010-10-08 11:58:22
Пожалуйста, скажите, что вы проверяете входную сторону сервера, а не просто полагаетесь на проверку на стороне клиента, так как это, очевидно, может быть отключено. – 2009-05-14 12:14:25