2016-07-01 13 views
0

我想這樣:當輸入的值匹配我的數組的值時,寫入匹配值。如何在字符串數組中使用正則表達式匹配?

所以這是我的代碼:

//我的陣列,如下所示:

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

我的另一個陣列:myarray= ["RAB Video call drop %",RAB PS R99 drop % ","RAB PS HSDPA drop %"]

例如;當寫RAB *到textare,我應該看到,隨着「RAB」

我猜,我開始代碼應該如下:

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 %" 
     } 
    } 

我該怎麼辦? 請。

+0

真的沒有給你一個答案,但我認爲'myArray的[ 「J」]'應該是'myArray的研究[J]'.. – Arg0n

+0

checkNames是臨時數組? –

+0

不,不同陣列@VladuIonut – eagle

回答

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來自'textarea.value'。我想這樣:textarea.value是數組,如果數組eleman是:''RAB *''上面的代碼應該工作。我如何控制它?請@VladuIonut – eagle

+0

我已經更新我的回答 –

+0

非常感謝你:) – eagle

1

@鷹,我相信這是輸入到checkNames。如果是這樣,這裏是我的解決方案 -

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)); 
    } 
} 

接受此答案,如果它解決您的要求。

+0

我想學習'var re = new RegExp(formatRegExpr,'g');''g'是什麼? @dinesh – eagle

+0

g - 全局搜索標誌。好學的地方 - [regexr-dot-com](http://regexr.com/) – dinesh

+0

checkName來自'textarea.value'。我想這樣:textarea.value是數組,如果數組eleman是:''RAB *''上面的代碼應該工作。我如何控制它?請@dinesh – eagle

相關問題