Première méthode :
Lorsque vous travaillez sur un projet, vous devrez peut-être utiliser js pour vérifier l'exactitude de la saisie du formulaire. Dans ce cas, vous devez utiliser des expressions régulières js. Par exemple : Par exemple, si vous souhaitez vérifier le mois, le format est : « aaaa-MM ». Cette expression régulière est très simple à écrire. Si vous ne pouvez vraiment pas l'écrire, vous pouvez également utiliser Google et Baidu. . Il y a beaucoup d'exemples sur Internet ! Cependant, si l'expression régulière js est écrite à mort de cette manière, cela entraînera également de nouveaux problèmes : que se passe-t-il si le format du mois du fichier de configuration est modifié ? Le remplacer par « aaaaMM » ou « aaaa_MM »... ? ? Devons-nous penser à changer encore et encore les expressions régulières dans js ? ?
A ce moment, nous devons nous demander : Comment pouvons-nous écrire des expressions régulières dynamiques ? Après avoir modifié le fichier de configuration, nous n'avons plus besoin de toucher au code ?
L'auteur a parcouru le manuel js et n'a pas trouvé de moyen de convertir la chaîne en expression régulière. Cependant, ce problème peut être résolu indirectement en utilisant la méthode eval(); Écrivant ainsi du code plus polyvalent !
Une solution générale à l’exemple ci-dessus est publiée ci-dessous :
Copiez le code comme suit :
/**
* Vérifiez si la saisie du formulaire de mois est légale
* modèle : chaîne de format du mois
* identifiant : identifiant du formulaire
*/
fonction validateMonth (modèle, identifiant) {
var texte = document.getElementById(id);
var moisStr = texte.value;
var splitChar = "";
if(pattern.length > 6) splitChar = pattern.substring(4, pattern.length - 2);
eval("var re = ///d{4}" + splitChar + "//d{2}$/;");
//var re = //d{4}-/d{2}$/;
if(monthStr.match(re) == null) {
alert("Veuillez vous référer au format [" + motif + "] pour la saisie !/n" + "par exemple /"2010" + splitChar + "11/" ou /"2010" + splitChar + "03/"");
texte.value = "";
text.focus();
renvoie faux ;
}
renvoie vrai ;
}
Copiez le code comme suit :
/**
* Vérifiez si la saisie du formulaire de mois est légale
* modèle : chaîne de format du mois
* identifiant : identifiant du formulaire
*/
fonction validateMonth (modèle, identifiant) {
var texte = document.getElementById(id);
var moisStr = texte.value;
var splitChar = "";
if(pattern.length > 6) splitChar = pattern.substring(4, pattern.length - 2);
eval("var re = ///d{4}" + splitChar + "//d{2}$/;");
//var re = //d{4}-/d{2}$/;
if(monthStr.match(re) == null) {
alert("Veuillez vous référer au format [" + motif + "] pour la saisie !/n" + "par exemple /"2010" + splitChar + "11/" ou /"2010" + splitChar + "03/"");
texte.value = "";
text.focus();
renvoie faux ;
}
renvoie vrai ;
}
Une chose à noter : lors de l'épellation dynamique d'une chaîne de script et de sa transmission à la méthode eval() pour exécution, le caractère « / » doit être échappé.
Deuxième méthode :
Copiez le code comme suit :
<script>
var n=new Array( ".htm ", ".html ", ".shtml ");
//var pattern1 = new RegExp( "//w+// "+n[0]+ "$ ", "gi ");
var s1= "b.shtml ";
var résultat = faux ;
pour(var i=0;i <n.length;i++)
{
pattern1 = new RegExp( "//w+// "+n[i]+ "$", "gi ");
résultat|=modèle1.test(s1);
}
alert(Booléen(résultat));
</script>