2013-11-27 108 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