2016-07-01 7 views
0

Ich möchte Folgendes: Wenn der eingegebene Wert mit dem Wert meines Arrays übereinstimmt, schreiben Sie den Übereinstimmungswert.Wie Regex-Abgleich in String-Array verwenden?

so ist dies mein Code:

// mein Array wie folgt:

var checkNames = (document.getElementById("KPIorCounterList").value.split("\n").map(element => element.trim())).filter(v=>v != ""); 

meine andere Array: myarray= ["RAB Video call drop %",RAB PS R99 drop % ","RAB PS HSDPA drop %"]

Zum Beispiel; wenn der Schreib RAB * textare, sollte ich, um zu sehen, mit "RAB" ab

Ich denke, sollte Ihr Code wie folgt aussehen:

for (var i = 0; i < checkNames.length; i++) { 
        for (var j = 0; j < myarray.length; j++) { 
      // var str = myarray[j].split(" "); // I am not sure for his. 

      I want to this for here : (pseudo code) 
      for example checkName[i] == RAB* 
      if (checkName[i].match("match condition") == myarray[j]) 
      alert(myarray[j]); 
      //I should show output myarray[j] == RAB Video call drop %",RAB PS R99 drop % ","RAB PS HSDPA drop %" 
     } 
    } 

Wie kann ich tun? Bitte ..

+0

nicht wirklich eine Antwort für Sie tun, aber ich denke, 'myarray [ "j"]' 'sollte myarray [j]' sein .. – Arg0n

+0

checkNames ist Temp Array? –

+0

Nein, anderes Array @VladuIonut – eagle

Antwort

1

function check(){ 
 
var checkNames = (document.getElementById("KPIorCounterList").value.split("\n").map(element => element.trim())).filter(v=>v != ""); 
 
var myarray = ["RAB Video call drop %", "RAB PS R99 drop % ", "RAB PS HSDPA drop %"] 
 
for (var i = 0; i < checkNames.length; i++) { 
 
    console.log("results for", checkNames[i]) 
 
    for (var j = 0; j < myarray.length; j++) { 
 

 
     var matchString = myarray[j].match(new RegExp(checkNames[i].replace('*','.*'))); 
 
    if (matchString && myarray.indexOf(matchString[0])!==-1) { 
 
     console.log(myarray[j]); 
 
    } 
 
    //I should show output myarray[j] == RAB Video call drop %",RAB PS R99 drop % ","RAB PS HSDPA drop %" 
 
    } 
 
} 
 
    }
<textarea id="KPIorCounterList"></textarea> 
 
<button onclick="check()">Check</button>

+0

checkName kam von 'textarea.value'. Ich will das: textarea.value ist Array und wenn Array eleman ist: '' RAB * '' sollte der obige Code funktionieren. Wie kann ich es kontrollieren? Bitte @VladuIonut – eagle

+0

Ich habe meine Antwort aktualisieren –

+0

Vielen Dank :) – eagle

1

@eagle, ich glaube, das ist der Eingang zu checkNames. Wenn ja, hier ist meine Lösung -

var checkNames = ['RAB*']; 
var myarray = ["RAB Video call drop %","RAB PS R99 drop % ","RAB PS HSDPA drop %"]; 

for (var i = 0; i < checkNames.length; i++) { 
    for (var j = 0; j < myarray.length; j++) { 
     var formatRegExpr = checkNames[i].replace('*','.*'); 
     var re = new RegExp(formatRegExpr, 'g'); 
     alert(myarray[j].match(re)); 
    } 
} 

Akzeptieren Sie diese Antwort, wenn sie Ihre Anforderung löst.

+0

Ich versuche so zu lernen 'var re = neue RegExp (formatRegExpr, 'g');' Was ist 'g'? @dinesh – eagle

+0

g - globale Suchflagge. Guter Ort zum Lernen - [regexr-dot-com] (http://regexr.com/) – dinesh

+0

checkName kam aus 'textarea.value'. Ich will das: textarea.value ist Array und wenn Array eleman ist: '' RAB * '' sollte der obige Code funktionieren. Wie kann ich es kontrollieren? bitte @dinesh – eagle