2012-02-10 2 views
1

자바 스크립트 프롬프트 사용 검색 문자열과 검색 키워드와 같은 두 개의 매개 변수를 얻은 다음 키워드를 검색하고 발견 된 항목 수를 얻습니다. 그런 다음 페이지에 표시해야합니다. 내가 실수 한 것처럼 보입니다. 당신이 초보자,하지만 자신을 spoile 해달라고 때문에 모든문자열 내부를 검색하는 단어 수를 계산하십시오.

<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> 
+0

을 어떤 곳 ??? 모두'W'로 시작합니다 .. 문제가있는 곳을 지정하십시오 ... –

+0

-1 : 질문에 jquery 및 jquery mobile을 포함하도록 태그를 지정했기 때문에이 경우가 아니며 코드가 완전히 엉망입니다. 질문에 오류에 대한 설명이 포함되어 있지 않습니다. –

답변

4

첫째, 나는 투표를 DOWN 포기하지 않을거야.

어떤 오류가 있습니까? (FF/Chrome에서는 CTRL + SHIFT + J, IE에서는 F12)

해당 스크립트의 주요 문제점은 작성 방법입니다. 들여 쓰기 및 대괄호 배치가 모든 곳에서 이루어집니다. - 프로그래머가 수행해야 할 가장 중요한 작업 중 하나는 명확하고 일관된 스타일을 사용하여 깨끗한 코드를 작성하는 것입니다. 당신이 선호하는 것이 무엇이든지간에, 당신이 선호하는 것이 무엇이든간에 그것은 중요하지 않습니다. 예를 들어

, 나는 일반적인 자바 스크립트 규칙 당신에게 자바 스크립트를 다시 작성하는 경우 : 이제 조심스럽게 내 코드를 보면

<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> 

, 당신이 문제를 찾을 수 있습니다, 나는 늘 그것을 발견, 문제를 이야기 혼자서.

+0

내가 읽은 것에서는 관습에 도움이되지만 질문에 답하지 않으려 고합니다. – Steve

+0

@ 스티브 코드에서 대답이나 문제를 지적하는 것은 의미가 없지만 나는 그/그녀에게 보여주고 싶었습니다. 실수는 무엇입니까? 심지어 아기도 문제를 볼 수 있습니다. 정말로 모범 사례의 힘을 보여주고 싶었습니다. –

+0

@ 스티브 다시 쓰여진 코드로, 대답은 분명하지 않습니까? 중괄호를 일치시킵니다. –

0

당신은

당신은 선언되지 않은 변수를 사용하는 검색

1
  1. 의 사용에 대한 http://www.w3schools.com/jsref/jsref_search.asp를 방문하시기 바랍니다 ... 코드의 라인을 줄이기 위해, 자바 스크립트 검색 기능을 시도 할 수 있습니다. Javascript는 대소 문자를 구분하며 변수 b는 B와 다릅니다.
  2. 대괄호를 닫는 것을 잊지 마십시오.
  3. 하위 문자열을 검색 패턴과 비교해야합니다.
0

Sameera Thilakasiri으로 지적했듯이 코드가 엉성합니다. 저것이 너를 위해, 훌륭한 (나는 가정한다), 그러나 너의 부호를 보는 다른 사람은 그것을 따라가는 어려움을 보낼지도 모른다. 또한 코드가 엉성하기 때문에 실수로 쉽게 잡힐 수 있습니다.

예를 들어, 멋지게 형식화 된 코드에서 쉽게 볼 수있는 for 루프를 닫지 않았습니다. 오픈 for 루프 너머

, 나는 (구문) 볼 수있는 유일한 다른 문제는 자바 스크립트를 b이 스크립트는 'catch되지 않은 오류 ReferenceError 이유입니다, B 다른 것을 의미 대소 문자를 구분하는 언어입니다 것입니다 : B 정의되지 않았습니다 '라인에 if (enter.substring(y,B)) {.

for 루프를 닫고 문제의 라인에 소문자 b을 사용해보십시오. 일단 완료되면 논리 오류를 수정하면됩니다.

해피 코딩.

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>"); 
관련 문제