the length of the added character is not checked in the alphabet if(str.length == 1 ){...} (only one character must be added) and the for(var i=1; i<w2.length-1; i++){ if(term.indexOf(w2.charAt(i))== -1){ not performed for(var i=1; i<w2.length-1; i++){ if(term.indexOf(w2.charAt(i))== -1){ and for(var i=0; i<w2.length-2; i++){ if(term.indexOf(w2.charAt(i))== -1){ . Those. the same added string must pass the check. 1) all characters of the string, except the first, correspond to the elements of the term array. 2) all characters of the string, except the last, correspond to the elements of the term array.
var terminal = ['a', 'b', 'c']; var term=document.getElementById('terminal').innerHTML = terminal; var noterminal = ['D', 'A', 'Z', 'L']; var noterm = document.getElementById('noterminal').innerHTML = noterminal; function pushTerminal(){ var x = document.getElementById('newTerminal'); var str = term.indexOf(document.getElementById("inputAdd").value); var str2 = noterm.indexOf(document.getElementById("inputAdd").value); if(str.length == 1 ){ if(str == -1 && str2== -1) { term.push(document.getElementById("inputAdd").value); x.innerHTML = term.join(); }else{ alert("ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ"); } }else{ alert("ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ»!"); } } var changeStringFromRules = []; var changeStringToRules = []; function pushRules(){ var w1 = document.getElementById("inputw1").value; var w2 = document.getElementById("inputw2").value; var firstIn = term.indexOf(w2.charAt(0)) != -1; var lastIn = term.indexOf(w2.charAt(w2.length-1)) !=-1; var checkLettersTerm = true; var typeGrammar; for(var i=1; i<w2.length - 2; i++){ if(term.indexOf(w2.charAt(i))==-1){ innerIn = false; break; } } if(w1.length == 1){ if(innerIn && firstIn != lastIn){ if(innerIn && firstIn){ typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠΈΠΏΠ° 3'; }else if(innerIn && lastIn){ typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠΈΠΏΠ° 3'; } else{ typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΠ‘'; } }else if(w1.length!=1 && term.indexOf(w1.charAt(0))!=-1 || noterm.indexOf(w1.charAt(0))!=-1) { typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΠ'; } } // if(w1.length == 1 && noterm.indexOf(w1)!=-1){ // if(noterm.indexOf(w2.charAt(0))!=-1 ){ // for(var i=1; i<w2.length-1; i++){ // if(term.indexOf(w2.charAt(i))== -1){ // checkLettersTerm = false; // typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠΈΠΏΠ° 3'; // alert('ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠΈΠΏΠ° 3'); // console.log('w2', w2); // } // } // // }else if(noterm.indexOf(w2.charAt(w2.length-1))!=-1){ // for(var i=0; i<w2.length-2; i++){ // if(term.indexOf(w2.charAt(i))== -1){ // checkLettersTerm = false; // typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠΈΠΏΠ° 3'; // alert('ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠΈΠΏΠ° 3'); // // } // } // } else { // typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΠ‘'; // alert('ΠΠΎΠ½ΡΠ΅ΡΡΠ½ΠΎ-ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ'); // } // }else if(w1.length!=1 && term.indexOf(w1.charAt(0))!=-1 || noterm.indexOf(w1.charAt(0))!=-1){ // typeGrammar = 'ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΠ'; // alert('ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ'); // } var li = document.createElement("li"); li.textContent = w1+'-->'+w2 +' '+ typeGrammar; document.getElementById('list').appendChild(li); var removeBtn = document.createElement("input"); removeBtn.type = "button"; removeBtn.value = "Π£Π΄Π°Π»ΠΈΡΡ"; removeBtn.onclick = remove; li.appendChild(removeBtn); document.getElementById("list").appendChild(li); } function remove(e) { var el = e.target; el.parentNode.remove(); } <div class="alphabet"> <div class="terminal"> <h2>Π’Π΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π°Π»ΡΠ°Π²ΠΈΡ: </h2> <div id="terminal"></div> <h2>ΠΠΎΠ²ΡΠΉ Π’Π΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π°Π»ΡΠ°Π²ΠΈΡ: </h2> <div id="newTerminal"></div> <div class="addTerminal"> <h3>ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°</h3> <form> <input id ="inputAdd" type="text"> <input type="button" value="ΠΠΎΠ±Π°Π²ΠΈΡΡ" onclick="pushTerminal()"> </form> </div> </div> <div class="noterminal"> <h2>ΠΠ΅ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π°Π»ΡΠ°Π²ΠΈΡ: </h2> <div id="noterminal"></div> </div> </div> <div class="addRules"> <h3>ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ</h3> <form> <label>w1:</label><input id="inputw1" type="text"><label> --> w2:</label><input id="inputw2" type="text"> <input type="button" value="Add" onclick="pushRules(this)"> </form> <h3>ΠΡΠ°Π²ΠΈΠ»Π°:</h3> <div class="container_rules"> <ul id="list"></ul> </div> </div>