Méthode 1 :
Lorsque vous travaillez sur un projet, vous pouvez rencontrer le besoin d'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 ? ?
À ce stade, 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 !
La solution générale à l'exemple ci-dessus est publiée ci-dessous :
/**
* Vérifiez si la saisie du formulaire de mois est légale
* modèle : chaîne de format du mois
* id : identifiant du formulaire
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id);
varmonthStr = text.value ;
var splitChar = ""
if(pattern.length > 6) splitChar = pattern.substring(4, pattern.length - 2); 4}" splitChar " \d{2}$/;");
//var re = /d{4}-d{2}$/;
if(monthStr.match(re) == null) {
alert("Veuillez vous référer au format [" modèle "] pour la saisie !
" "par exemple "2010" splitChar "11" ou "2010" splitChar "03"");
text.value = "";
text.focus();
return false;
}
return true;
}
/**
* Vérifiez si la saisie du formulaire de mois est légale
* modèle : chaîne de format du mois
* id : identifiant du formulaire
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id);
var MonthStr = text.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 [" modèle "] pour la saisie !
" "par exemple "2010" splitChar "11" ou "2010" splitChar "03"");
text.value = "";
text.focus();
return false;
}
return true;
}
Une chose à noter : lorsque vous épelez dynamiquement une chaîne de script et la transmettez à la méthode eval() pour exécution, le caractère '' doit être échappé
Méthode 2 :
<script> <br> var n=new Array( ".htm ", ".html ", ".shtml "); <br>//var pattern1 = new RegExp( "\w \ " n[0] "$ ", "gi ") ; <br>var s1= "b.shtml "; <br>var result = false <br>for(var i=0;i <n.length;i ) <BR>{ <BR>pattern1 = new RegExp( "\w \ " n[i] "$ ", "gi "); <BR>result|=pattern1.test(s1); <BR>alert(); Booléen(résultat)); <BR></script>