Un problème rencontré dans le travail, deux chaînes correspondent, les exigences: chaque chaîne contient au plus une *, et il peut y avoir infiniment multiple
* représente une chaîne de toute longueur, quand? représente un caractère
L'exigence peut provoquer deux conflits
Copiez le code comme suit: <input type = "text" id = "str1"> <br>
<input type = "text" id = "str2"> <br>
<input type = "bouton" onclick = "checkmarchx ()" value = "check">
Le code à implémenter à l'aide de JavaScript est le suivant:
Fonction CheckCarchx () {var str1 = document.getElementById ('str1'). valeur; var str2 = document.getElementById ('str2'). valeur; var str1xposition = str1.indexof ('*'); var str2xposposition = str2.indexof ('*'); if (str1xposition! = - 1 && str2xposition! = = str1xposition> str2xposition? str2xposition: str1xposition; // succetifIf (position! = 0) {var patbeForestr1 = str1.substring (0, position); var patbeforestr2 = str2.substring (0, position); if (checkmarchq (patbeforrest '+ str2 + "conflit"); // Testez ensuite la seconde moitié correspondante de Var Str1xBackPosition = Str1.length-Str1xposition-1; var str2xbackposition = str2.Lengthposition? '+ str2 + "conflit");} else {var patbackstr1 = str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.SubString (str2.length-backposition, str2.length); if (checkMarchq (patbackstr1, patbackstr2)) {alert (str1 +' et '+ str2 + "conflit");}}}} else {// alert (str1 +' et '+ str2 + "conflit"); var str1xbackposition = str1.length-str1xposition-1; var str2xbackposition = str2.length-str2xposition-1; var backposposition = str1xbackposition> str2xbackPosition? Str2xbackPosition: Str1xBackposition; (backposition == 0) {alert (str1 + 'entre en conflit avec' + str2 + ");} else {var patbackstr1 = str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.substring(str2.length-backposition,str2.length);if(checkMarchQ(patbackStr1,patbackStr2)){alert(str1+' conflicts with '+str2+" conflicts");}}}}else if((str1XPosition==-1 && str2XPosition!=-1)||(str1XPosition!=-1 && str2xposition == - 1)) // il n'y a qu'une seule chaîne contenant * {var strx = str1xposition == - 1? str2: str1; // la chaîne contenant * var strnox = str1xposition == - 1? Str1: str2; // la chaîne sans * if (strx.length-1 <strnox.length) {var position = strx.indexof ('*'); if (position == 0) {// alert (str1 + 'et' + str2 + "conflit la première moitié"); var backposition = strx.length position-1; if (backposition == 0) {alert (str1 + 'conflits avec' + str2 + ");} else {var Patbackstr1 = str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.SubString (str2.length-backposition, str2.length); if (checkmarchq (patbackstr1) str1.substring (0, position); var patbeforstr2 = str2.SubString (0, position); if (checkmarchq (patbeForestr1, patbeforestr2)) {// alert (str1 + 'et' + str2 + "conflit the premier semestre"); var backposition = strx.lengle-position-1; if (backposposition == 0) {alert (strx. et pose-1; '+ str2 + "conflit");} else {var patbackstr1 = str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.SubString (str2.length-backposition, str2.length); if (checkMarchq (patbackstr1, patbackstr2)) {alert (str1 +' et '+ str2 + "conflit");}}}}}}} else {if (checkmarchq (str1, str2)) {alert (str1 +' et '+ str2 + "conflit");}}}}} fonction vérifie lecarchq (str1, str2) {var flagque = false; if (Str1.Legth == Str2.Length) i = 0; i <str1.length; i ++) {if (str1.substr (i, 1)! = '?' && str2.Substr (i, 1)! = '?') {if (str1.substr (i, 1)! = str2.substr (i, 1)) {Flagque = false; // signifie ne pas case;} else {Flagque = true; Retour Flagque;}* est au moins un caractère, et le programme ci-dessus ne vérifie pas la légalité de l'entrée.
Pour afficher plus de syntaxe JavaScript, vous pouvez suivre: "JavaScript Reference Tutorial" et "JavaScript Code Style Guide". J'espère également que tout le monde soutiendra davantage Wulin.com.