计算在字符串中搜索的单词

时间:2012-02-10 11:15:06

标签: javascript jquery html css

使用javascript提示我得到两个参数,如搜索字符串和搜索关键字,然后搜索关键字并获取找到的项目数。 然后需要在页面上显示它们。似乎我犯了错误。

<html>
<head>
<script type = "text/javascript"> 

    var counter = 0;

    var enter = prompt("Enter your String:");
    var search = prompt("Enter words to search:");

    var b = search.length;
    var a = enter.length - search.length;


    for (var y = 0; y <= a; y++)
    {
    if(b <= enter.length){

        if(enter.substring(y,B))
                {
                    counter = counter + 1;
                }

                b++;

            }

        else{
            document.write("<p>" + "ERROR" + "</p>");
        }
    document.write("<p>" + "your word:" + enter + "</p>");
    document.write("<p>" + "word use:" + counter + "</p>");

</script>
<body>
</body>
</head>
</html>

5 个答案:

答案 0 :(得分:4)

首先,我没有给予DOWN VOTE,因为你是初学者,但不要惹恼自己。

你得到了什么错误? (FF / Chrome中的CTRL + SHIFT + J,IE中的F12)

该脚本的主要问题是您编写它的方式。你的缩进和支架放置到处都是。 - 程序员要做的最重要的事情之一就是使用清晰一致的风格编写干净的代码。只要你坚持下去,coding convention你更喜欢它并不重要。

例如,如果我在一个常见的Javascript约定中重写Javascript:

<script type="text/javascript"> 
    var counter = 0;

    var enter = prompt("Enter your String:");
    var search = prompt("Enter words to search:");

    var b = search.length;
    var a = enter.length - search.length;


    for (var y = 0; y <= a; y++) {
        if (b <= enter.length) {
            if (enter.substring(y,B)) {
                counter = counter + 1;
            }   
            b++;
        }
        else {
            document.write("<p>" + "ERROR" + "</p>");
        }
        document.write("<p>" + "your word:" + enter + "</p>");
        document.write("<p>" + "word use:" + counter + "</p>");

</script>

现在,如果你仔细查看我的代码,你可能会发现问题,我不会告诉你这个问题,而是自己找到它。

答案 1 :(得分:1)

  1. 您正在使用未声明的变量。请记住,Javascript区分大小写,变量b与B不同。
  2. 您忘了关闭for括号。
  3. 您需要将子字符串与搜索模式进行比较。

答案 2 :(得分:0)

你可以试试javascript搜索功能,减少代码行......

请访问http://www.w3schools.com/jsref/jsref_search.asp以了解搜索用途

答案 3 :(得分:0)

正如Sameera Thilakasiri正确指出的那样,你的代码很草率。如果这对您有用,那么(我想)很棒,但是其他查看代码的人可能很难跟踪它。此外,草率的代码会导致错误,否则很容易被抓住。

例如,您尚未关闭for循环,这很容易在格式良好的代码中看到。

除了开放的for循环之外,我在语法上看到的唯一另一个问题是JavaScript是区分大小写的语言,这意味着bB不同,这就是为什么你的脚本会在行if (enter.substring(y,B)) {上抛出'未捕获的ReferenceError:B未定义'。

尝试关闭for循环并在违规行上使用小写b。完成后,您只需修复逻辑错误。

快乐的编码。

答案 4 :(得分:0)

您也可以使用indexOf:

var counter = 0;

var enter = prompt("Enter your String:");
var search = prompt("Enter words to search:");

var start = 0;
while(1){
    start = enter.indexOf(search,start);
    if(start==-1) break;//if nothing found
    start++;//next start = current occurrence + 1
    counter++;
}
document.write("<p>" + "your word:" + enter + "</p>");
document.write("<p>" + "word use:" + counter + "</p>");