2016-10-01 7 views
-2

Я уже задал вопрос о школьной проблеме, над которой я работал. У меня есть то, что я считаю правильной функцией в задании, но я застрял. Мне нужно, чтобы alert() в моем коде отображал позицию индекса подстроки, которую он ищет. Все остальное работает, но я не знаю, как отправить эту информацию обратно переменной, которую я могу распечатать на экране. Мой код выглядит следующим образом:Как распечатать результат метода search() в JavaScript?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Lesson 6 Application Project A</title> 

<script language="JavaScript" type=text/javascript> 
<!-- 
    /***************************************************************************** 
    The placeholders sub and string are used to pass as arguments the 
    user's entry into the text box and the textarea. The variable where 
    is assigned the result of a method which returns the index (integer) 
    of the first occurence of sub (the string the program is searching for). 
    Start the search at the beginning of string (the text that is being searched). 
    Since the string is zero based, add 1 is to get the correct position of sub. 
    *****************************************************************************/ 

    function search(sub, string) { 
     var where; 

     if (string.search(sub) != -1){ 
      where = alert("Your index position is: " + where); 
     } 
     else{ 
      where = alert("Could not find your string!"); 
     } 




    } 
//--> 
</script> 
</head> 

<body> 

<h3>CIW JavaScript Specialist</h3> 
<hr /> 

<form name="myForm"> 
<p> 
<strong>Look for:</strong> 
<input type="text" name="what" size="20" /> 
</p> 

<p> 
<strong>in this string:</strong> 
<textarea name="toSearch" rows="4" cols="30" wrap="virtual"> 
</textarea> 
</p> 

<p> 
<input type="button" value="Search" 
onclick="search(myForm.what.value, myForm.toSearch.value);" /> 
</p> 
</form> 

</body> 
</html> 
+1

'alert' ничего не возвращает, а' where' не определено, когда вы используете его в 'alert'. – Li357

ответ

1

Попробуйте

function search(sub, string) { 
    var where = string.indexOf(sub); 

    if (where != -1){ 
     alert("Your index position is: " + where); 
    } 
    else{ 
     alert("Could not find your string!"); 
    } 

} 
0

Ваш, где переменная должна быть assinged в результате поиска.

function search(sub, string) { 
     var where = string.search(sub); 

     if (where != -1){ 
      alert("Your index position is: " + (where + 1)); 
     } 
     else{ 
      alert("Could not find your string!"); 
     } 
} 
-1

Мое решение моей собственной проблемы состояло в том, чтобы создать переменную с именем position и установить ее для получения позиции индекса подстроки. Затем я мог бы добавить это в мое предупреждение() и отобразить результаты на экране. Исправленный код выглядит следующим образом:

function search(sub, string) { 
     var where; 
     var position = string.search(sub); 

     if (string.search(sub) != -1){ 
      where = alert("Your index position is: " + position); 
     } 
     else{ 
      where = alert("Could not find your string!"); 
     } 




    } 
+0

В чем смысл 'где'? И почему бы не 'if (position! = -1)'? – 4castle

+0

Я часто сталкиваюсь с проблемой делать больше работы, чем мне нужно. Я видел, где я поступил не так, и сделал это в память. Спасибо за все быстрые ответы. – KenDubzify

 Смежные вопросы

  • Нет связанных вопросов^_^