Gibt es in jQuery eine Funktion / ein Plugin, mit dem ich einen bestimmten regulären Ausdruck in einer Zeichenfolge abgleichen kann?
In einem E-Mail-Eingabefeld erhalte ich beispielsweise eine E-Mail-Adresse und möchte prüfen, ob sie das richtige Format hat. Welche jQuery-Funktion sollte ich verwenden, um festzustellen, ob mein validierender regulärer Ausdruck mit der Eingabe übereinstimmt?
Ich habe nach einer Lösung gegoogelt, aber ich konnte nichts finden.
Antworten:
Ich glaube das macht es:
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
Es verfügt über integrierte Muster für URLs und E-Mail-Adressen, und ich denke, Sie können auch Ihre eigenen verwenden.
quelle
Wenn Sie einige Elemente basierend auf einem regulären Ausdruck suchen möchten, können Sie die
filter
Funktion verwenden. Angenommen, Sie möchten sicherstellen, dass der Benutzer in allen Eingabefeldern nur Zahlen eingegeben hat. Suchen Sie also alle nicht übereinstimmenden Eingaben und markieren Sie sie.$("input:text") .filter(function() { return this.value.match(/[^\d]/); }) .addClass("inputError") ;
Wenn es nur so etwas wäre, könnten Sie natürlich das Formularvalidierungs-Plugin verwenden, aber diese Methode könnte auf jede Art von Elementen angewendet werden, die Sie mögen. Ein weiteres Beispiel, um zu zeigen, was ich meine: Finden Sie alle Elemente, deren
id
Übereinstimmungen/[a-z]+_\d+/
$("[id]").filter(function() { return this.id.match(/[a-z]+_\d+/); });
quelle
Ich verwende jQuery und JavaScript und es funktioniert gut für mich:
var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if(rege.test($('#uemail').val())){ //do something }
quelle
Sofern Sie nicht nach etwas Bestimmtem suchen, können Sie den Abgleich regulärer Ausdrücke bereits mit regulärem Javascript mit Zeichenfolgen durchführen.
Zum Beispiel können Sie einen Abgleich mit einem String durchführen, indem Sie so etwas tun ...
var phrase = "This is a phrase"; phrase = phrase.replace(/is/i, "is not"); alert(phrase);
Gibt es etwas, nach dem Sie suchen, außer nur nach regulären Ausdrücken im Allgemeinen?
quelle
Mein Code:
$("input.numeric").keypress(function(e) { /* pour les champs qui ne prennent que du numeric en entrée */ var key = e.charCode || e.keyCode || 0; var keychar = String.fromCharCode(key); /*alert("keychar:"+keychar + " \n charCode:" + e.charCode + " \n key:" +key);*/ if ( ((key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 && key <= 40)) && e.charCode==0) /* backspace, end, begin, top, bottom, right, left, del, tab */ || (key >= 48 && key <= 57) ) { /* 0-9 */ return; } else { e.preventDefault(); } });
quelle
Ein einfaches heutiges Beispiel:
$('#some_input_id').attr('oninput', "this.value=this.value.replace(/[^0-9A-Za-z\s_-]/g,'');")
das bedeutet, dass alles, was nicht mit Regex übereinstimmt, nichts wird, dh
''
quelle
Aus jquery.validate.js (von joern), beigesteuert von Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i
Stellen Sie sicher, dass Sie das @@ verdoppeln, wenn Sie MVC Razor verwenden:
/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i
Lust auf Spaghetti?
quelle