Dans jQuery, existe-t-il une fonction/un plugin que je peux utiliser pour faire correspondre une expression régulière donnée dans une chaîne?
Par exemple, dans une zone de saisie de courrier électronique, je reçois une adresse électronique et souhaite savoir si son format est correct. Quelle fonction jQuery devrais-je utiliser pour voir si mon expression régulière de validation correspond à l'entrée?
J'ai cherché une solution sur Google, mais je n'ai rien trouvé.
Je crois que ça le fait:
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
Il possède des modèles intégrés pour des éléments tels que les adresses URL et les adresses électroniques, et je pense que vous pouvez également utiliser les vôtres.
Si vous souhaitez rechercher des éléments à partir d'une expression rationnelle, vous pouvez utiliser la fonction filter
. Par exemple, supposons que vous vouliez vous assurer que l'utilisateur n'a saisi que des chiffres dans toutes les zones de saisie. Nous allons donc rechercher toutes les entrées qui ne correspondent pas et les mettre en surbrillance.
$("input:text")
.filter(function() {
return this.value.match(/[^\d]/);
})
.addClass("inputError")
;
Bien sûr, si c'était juste quelque chose comme ça, vous pourriez utiliser le plugin de validation de formulaire, mais cette méthode pourrait être appliquée à n'importe quel type d'éléments que vous aimez. Un autre exemple pour montrer ce que je veux dire: Trouver tous les éléments dont id
correspond à /[a-z]+_\d+/
$("[id]").filter(function() {
return this.id.match(/[a-z]+_\d+/);
});
J'utilise jQuery et JavaScript et cela fonctionne très bien pour moi:
var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if(rege.test($('#uemail').val())){ //do something }
À moins que vous ne recherchiez quelque chose de spécifique, vous pouvez déjà effectuer une correspondance d'expression régulière à l'aide de Javascript régulier avec des chaînes.
Par exemple, vous pouvez faire une correspondance en utilisant une chaîne comme ceci ...
var phrase = "This is a phrase";
phrase = phrase.replace(/is/i, "is not");
alert(phrase);
Y a-t-il autre chose que vous recherchiez autre que la correspondance d'expressions régulières en général?
Mon 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();
}
});