Die Antwort von PeterTheNiceGuy etwas erweitern:
$.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."
);
Auf diese Weise können Sie ein Regex-Objekt an die Regel übergeben.
$("Textbox").rules("add", { regex: /^[a-zA-Z'.\s]{1,40}$/ });
Das Zurücksetzen der lastIndex
Eigenschaft ist erforderlich, wenn das g
Flag für das RegExp
Objekt gesetzt ist. Andernfalls wird die Validierung ab der Position der letzten Übereinstimmung mit diesem regulären Ausdruck gestartet, selbst wenn die Betreffzeichenfolge unterschiedlich ist.
Einige andere Ideen, die ich hatte, waren, Ihnen die Verwendung von Regex-Arrays zu ermöglichen, und eine andere Regel für die Negation von Regex:
$("password").rules("add", {
regex: [
/^[a-zA-Z'.\s]{8,40}$/,
/^.*[a-z].*$/,
/^.*[A-Z].*$/,
/^.*[0-9].*$/
],
'!regex': /password|123/
});
Aber diese umzusetzen wäre vielleicht zu viel.