2013-11-27 78 views
0

我一直試圖讓這個代碼工作:搜索文本使用JavaScript

<!DOCTYPE html> 
<html> 
<body> 
<input name="paragraph" id="paragraph" value="Paste your paragraph here!" style="width: 800px; height: 100px;"><br> 
<input name="search" id="search" value="(Case sensitive) Text to search for" style="width: 400px;"><br> 
<button type="button" onclick="myFunction()">Find text</button><br> 
<script> 
function myFunction() { 
    text = document.getElementById("paragraph"); 
    var textSearch = document.getElementById("search"); 
var hits = []; 


for(var i = 0; i < text.length; i++) { 
    if(text[i] == "J"){ 
    for (var j = i; j < (textSearch.length + i); j++) { 
     hits.push(text[j]); 
    } 

    if (hits === 0) { 
     alert('Your name isn't here') 
    } else { 
     alert(hits); 
    } 
} 
</script> 
</body> 
</html> 

基本上,它試圖做的是用戶輸入一段文字或大塊進入前然後在下面的框中搜索他們正在嘗試搜索的文本。然後點擊一個按鈕,它會顯示代碼中的位置(通過告訴用戶有多少個字符經過,直到它找到他們正在搜索的內容)。如果你能改進它,或者從頭開始展示一些更好的東西!

+1

if(text [i] ==「J」)?這行爲。 – SHIN

+0

你想在其他地方搜索一個字符串? – SHIN

+0

如果只想首次出現可以使用'text.indexOf(textSearch)' – charlietfl

回答

2

這裏是你的固定版本:d

<!DOCTYPE html> 
<html> 
<head> 
<title> 
Cari teks 
</title> 
<script> 
function myFunction() { 
    var text = document.getElementById("paragraph").value; 
    var textSearch = document.getElementById("search").value; 

var hits = []; 
var kata = text.split(" "); 
var jmlkata = kata.length; 
var i = 0; 
for (i=0;i<=jmlkata-1;i++){ 
    if (textSearch == kata[i]){ 
    hits.push(kata[i]); 
    } 
} 
var jmlfound = hits.length; 
     alert("found : "+jmlfound); 

} 
</script> 
</head> 
<body> 
<textarea name="paragraph" id="paragraph" style="width: 800px; height: 100px;" > 
</textarea><br> 
<input name="search" id="search" style="width: 400px;"><br> 
<button type="button" onclick="myFunction()">Find text</button><br> 
</body> 
</html> 

我對詞/語言對不起,這使用印尼語的某些部分,但它不會是一個問題。
我用textarea取代你的大文本輸入,所以長文本會更有力。
這個作品的search engine只尋找1(一)字。所以你必須開發這個腳本。
只是用它作爲參考,可能有幫助:D