Использование соответствующего метода строкового объекта

#javascript #string #methods

#javascript #строка #методы

Вопрос:

У меня есть задание для школы, касающееся использования соответствующего метода объекта string для поиска строки внутри строки. Большая часть страницы предоставлена для нас. Наша задача — создать код, который будет выполнять поиск. Цели заключаются в следующем: используйте соответствующий метод объекта String, чтобы определить, существует ли строка в строке поиска. Далее, если строка найдена, сообщите пользователю позицию индекса, в которой была найдена строка. Наконец, если строка не найдена, предоставьте пользователю соответствующее сообщение. На данный момент я знаю, что match() метод — это не то, о чем они просят, поэтому я изменю его на test() метод. Сказав это, я не могу понять, почему при нажатии кнопки поиска ничего не происходит, даже ошибки или чего-то еще.

 <!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 = string;
        var look = new RegExp(sub);
		
		
		
		if (look === true){
		    alert("Your index position is: "   look);
		}
		else
		{
			alert("Your string was not found!");
		}
         
		



    }
        document.write(look.search(where));
       
     //-->
  </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. String.indexOf Ищите лучшее решение

2. Пришел сюда, чтобы сказать, что сказал @synthet1c — String.indexOf вероятно, это лучший выбор.

3. Посмотрите на консоль разработчика. Для вас появится сообщение об ошибке.

4. Я переместил ваш код в фрагмент кода. Нажмите «Выполнить фрагмент кода», а затем нажмите «Поиск». Что говорит консоль? Безусловно, существует как минимум 1 ошибка. Подсказки look — это не строка; where/g это что? Прочитайте методы String ; посмотрите, какой из них будет делать то, что вы хотите. Сканирование с помощью доступных методов является обычным делом при знакомстве с новым языком / API. Вы также можете захотеть взглянуть на регулярное выражение.

5. Итак, обновление, теперь я знаю, что мне нужно использовать search(), поскольку они запрашивают возврат позиции индекса подстроки. При этом я все еще не могу понять, как искать подстроку и отображать позицию индекса или сообщение, в котором говорится, что ее там нет.