2015-07-21 48 views
-1

這是我的代碼。我試圖匹配存儲在命中數組[]中的確切單詞。我只想打印myName變量中的究竟是什麼。我們可以不用match()方法來做到這一點嗎?查找不使用匹配的確切字符串()

var text = "Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo"; 

var myName = "Paolo"; 

var hits = []; 

for(var x=0; x<text.length; x++){ 
     if(text[x]===("P")){ 

      for(var i = x; i<(myName.length + x); i++){ 
       hits.push(text[i]); 
       } 
      } 


    } 

    if(hits.length === 0){ 
     console.log("Your name wasn't found");  
     }else{ 



      console.log(hits); 

     } 
+0

將你的文本作爲數組排列 – Raghavendra

+0

最好帶上匹配函數。例如:「Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo」.match(/ \ bPaaolo \ b /) – Raghavendra

回答

1

如何:

var text = "Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo"; 

var myName = "Paolo"; 

var textArray = text.split(' '); 
var hits = textArray.filter(function(value){ return value === myName; }); 

if(hits.length === 0){ 
    console.log("Your name wasn't found");  
}else{ 
    console.log(hits); 
} 

該解決方案採用array.filter()找到完全匹配。

-1

您可以使用indexOf梅索德:

"Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo".indexOf('Paolo') => 23

"Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo".indexOf('Paolooo') => -1

0

簡單的條件:

if(text.indexOf(myName) != -1) { 
    // name found 
} 

,或者如果你想有一個單詞匹配,只是分割單詞列表int O字的數組:

if(text.split(' ').indexOf(myName) != -1) { 
    // name found 
} 

看到它住在這裏:

var text = "Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo"; 
 

 
function findName(word) { 
 
    var name = prompt('Enter name:'); 
 
    if (!name) 
 
    return; 
 
    var t = word ? text.split(' ') : text; 
 
    if(t.indexOf(name) != -1) { 
 
    alert('Name ' + name + ' found!'); 
 
    } 
 
    else { 
 
    alert('Name ' + name + ' NOT found!'); 
 
    } 
 
    findName(word); 
 
}
<button onclick="findName()">String match</button> 
 
<button onclick="findName(true)">Word match</button>

+1

這對於「PaoloPaolo」不起作用。所以這不是沒有道理的。 – smnbbrv

+0

它不應該......你能看到原始文本中的「PaoloPaolo」嗎? – Shomz

+0

它應該,它會發現保羅2次,當沒有文字「Paolo」在文本中,但有「PaoloPaolo」,我們沒有搜索 – smnbbrv

0

嘗試以下操作:

var text = "Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo"; 

var myName = "Paolo"; 

var foundArray = text.split(" ").filter(function(e){ return e == myName }); 

if (foundArray.length) { /* name is found */ } 
-1

您可以使用簡單一個事實n完全匹配: if ("abc" == "abc")

首先,您將創建一個您要與您的搜索匹配的數組。然後,您只需將所有這些數組元素與上面的代碼進行比較。其結果將是這樣的:

var haystack = "Blaaah Bllaaah Bllaaah Paolo Paolo Blahhh Paaolo paolo"; 

var search = "Paolo"; 

// Create an array 
var haystackArray = haystack.split(" "); 
var hits =0; 

// For each array element 
for(var i = 0; i < haystackArray.length; i ++){ 
    // Check if this array element match exactly your search string 
    if(search == haystackArray[i]) 
     hits++; 
} 
console.log(hits); 
相關問題