Methode eins:
Wenn Sie an einem Projekt arbeiten, müssen Sie möglicherweise js verwenden, um die Richtigkeit der Formulareingabe zu überprüfen. In diesem Fall müssen Sie reguläre js-Ausdrücke verwenden. Beispiel: Wenn Sie den Monat überprüfen möchten, lautet das Format: „JJJJ-MM“. Wenn Sie ihn wirklich nicht ausschreiben können, können Sie auch Google und Baidu verwenden . Es gibt viele Beispiele im Internet! Wenn der reguläre js-Ausdruck jedoch auf diese Weise zu Tode geschrieben wird, bringt dies auch neue Probleme mit sich: Was passiert, wenn das Monatsformat der Konfigurationsdatei geändert wird? Ändern Sie es in „yyyyMM“ oder „yyyy_MM“...? ? Müssen wir daran denken, die regulären Ausdrücke in js immer wieder zu ändern? ?
Zu diesem Zeitpunkt müssen wir uns fragen: Wie können wir dynamische reguläre Ausdrücke schreiben, nachdem wir die Konfigurationsdatei geändert haben?
Der Autor hat das JS-Handbuch durchgesehen und keine Möglichkeit gefunden, die Zeichenfolge in einen regulären Ausdruck umzuwandeln. Dieses Problem kann jedoch indirekt gelöst werden, indem die Methode eval() verwendet wird, um das Skript dynamisch auszuführen. So schreiben Sie vielseitigeren Code!
Eine allgemeine Lösung für das obige Beispiel finden Sie unten:
Kopieren Sie den Codecode wie folgt:
/**
* Überprüfen Sie, ob die Eingabe im Monatsformular zulässig ist
* Muster: Zeichenfolge im Monatsformat
* id: Formular-ID
*/
Funktion validierenMonth(Muster, ID) {
var text = document.getElementById(id);
var monatlichStr = 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) {
warning("Bitte beachten Sie das Format [" + Muster + "] für die Eingabe!/n" + "z. B. /"2010" + splitChar + "11/" oder /"2010" + splitChar + "03/"");
text.value = "";
text.focus();
return false;
}
return true;
}
Kopieren Sie den Codecode wie folgt:
/**
* Überprüfen Sie, ob die Eingabe im Monatsformular zulässig ist
* Muster: Zeichenfolge im Monatsformat
* id: Formular-ID
*/
Funktion validierenMonth(Muster, ID) {
var text = document.getElementById(id);
var monatlichStr = 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) {
warning("Bitte beachten Sie das Format [" + Muster + "] für die Eingabe!/n" + "z. B. /"2010" + splitChar + "11/" oder /"2010" + splitChar + "03/"");
text.value = "";
text.focus();
return false;
}
return true;
}
Beachten Sie Folgendes: Wenn Sie eine Skriptzeichenfolge dynamisch buchstabieren und zur Ausführung an die Methode eval() übergeben, muss das Zeichen „/“ maskiert werden.
Methode zwei:
Kopieren Sie den Codecode wie folgt:
<Skript>
var n=new Array( ".htm", ".html", ".shtml");
//var pattern1 = new RegExp( "//w+// "+n[0]+ "$ ", "gi ");
var s1= "b.shtml ";
var result = false;
for(var i=0;i <n.length;i++)
{
pattern1 = new RegExp( "//w+// "+n[i]+ "$ ", "gi ");
result|=pattern1.test(s1);
}
alarm(Boolean(result));
</script>