Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2015, 00:11
Новичок на форуме
Отправить личное сообщение для Aleksey140569 Посмотреть профиль Найти все сообщения от Aleksey140569
 
Регистрация: 13.02.2015
Сообщений: 3

Скрипт выделяющий слова в тексте. Что я делаю не так
Есть следующее задание: X
Найдите у себя на компьютере или в Интернете текст на 2000-4000 символов.
Вставьте данный текст на страницу.
Создайте текстовое поле, в которое пользователь будет вводить строку, которую будет нужно найти в тексте.
Напишите скрипт, который в тексте на странице будет выделять все совпадения тегом <b>.
Примечание: После ввода искомой строки в тексте на странице должны быть выделены тегом <b> все найденные совпадения со строкой, чтобы пользователь сразу видел, где найдена его строка. Для поиска используйте indexOf(), также потребуются циклы. Если совпадений нет, то через alert(): «Ничего не найдено!».

я написал следующий код:

<script type="text/javascript">

        var text = "";
        text = "Здесь очень длинный текст";
        document.getElementById("text").innerHTML = text;

        findWord()
        {
            var word = "";
            var target = "";

            word = myform.text.value

            var target = word;         // цель поиска

            var pos = -1;

            while ((pos = str.indexOf(target, pos+1)) != -1)
            {
                var text = text.replace(target, "<b>" + target + "</b>");
            }
        }
    </script>


Но как его довести до ума нет ни одной идеи...
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2015, 00:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Aleksey140569,
а где html?
Ответить с цитированием
  #3 (permalink)  
Старый 16.02.2015, 22:50
Новичок на форуме
Отправить личное сообщение для Aleksey140569 Посмотреть профиль Найти все сообщения от Aleksey140569
 
Регистрация: 13.02.2015
Сообщений: 3

Вот код
<!DOCTYPE html>
<html>
<head>
    <title>Lesson018</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <p id="text"></p>

    <script type="text/javascript">

        var text = "";
        text = "Стучат по стыкам колеса, плещется в большом медном чайнике кипяток. В теплушке, под потолком, тускло светит аккумуляторная лампочка, на нарах, застеленных невиданной здесь пенкой, сидят и лежат спецназовцы. Кто дремлет, кто не торопясь курит и разговаривает, а дежурная смена находится у дверей при оружии и в полной боевой готовности. Полковник Бережной и генерал Бонч-Бруевич сидят у приоткрытого багрового зева буржуйки, и ведут свой неспешный разговор. Обсуждается извечный на Руси вопрос — кто виноват, и что делать. Сейчас разговор крутился вокруг первой половины ХХ века, ставшей для России воистину дорогой на Голгофу. Генерала интересовало то, как увести страну с этого пути, и какова при этом должна быть роль армии.";
        document.getElementById("text").innerHTML = text;

        function findWord()
        {
            var word = "";
            var target = "";
            var text2 = "";

            word = myform.search.value

            var len = word.length;

            var target = word;

            var pos = -1;


            while((pos = text.indexOf(target, pos+1)) != -1)
            {
                var target2 = "";

                target2 = text.splice(pos, len);
                text2 = text.replace(target, "<b>" + target + "</b");
            }
            document.getElementById("text").innerHTML = text2;
        }
    </script>
    <form name="myform">
        <p>Введите слово: </p>
        <input type="text" name="search" />
        <input type="submit" value="Найти" onclick="findWord()" />
    </form>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 16.02.2015, 23:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Aleksey140569,

<!DOCTYPE html>
<html>
<head>
    <title>Lesson018</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    b{
      background: #FFCC33;
       font-size: 48px;

    }
    </style>
</head>
<body>
    <p id="text"></p>

    <script type="text/javascript">

        var text = "Стучат по стыкам колеса, плещется в большом медном чайнике кипяток. В теплушке, под потолком, тускло светит аккумуляторная лампочка, на нарах, застеленных невиданной здесь пенкой, сидят и лежат спецназовцы. Кто дремлет, кто не торопясь курит и разговаривает, а дежурная смена находится у дверей при оружии и в полной боевой готовности. Полковник Бережной и генерал Бонч-Бруевич сидят у приоткрытого багрового зева буржуйки, и ведут свой неспешный разговор. Обсуждается извечный на Руси вопрос — кто виноват, и что делать. Сейчас разговор крутился вокруг первой половины ХХ века, ставшей для России воистину дорогой на Голгофу. Генерала интересовало то, как увести страну с этого пути, и какова при этом должна быть роль армии.",
         p = document.getElementById("text");
         p.innerHTML = text;

        function findWord()
        {
             var target = new RegExp('\('+myform.search.value+'\)', 'mig'),
             text2 = text.replace(target, "<b>$1<\/b>");;
             p.innerHTML = text2 == text || !myform.search.value ? (alert('Ничего не найдено!'), text) : text2 ;
             myform.search.value = '';
             return false
        }
    </script>
    <form name="myform" onsubmit="return findWord()">
        <p>Введите слово: </p>
        <input type="text" name="search"  value="кто"/>
        <input type="submit" value="Найти" />
    </form>

</body>
</html>

Последний раз редактировалось рони, 16.02.2015 в 23:20.
Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2015, 20:21
Новичок на форуме
Отправить личное сообщение для Aleksey140569 Посмотреть профиль Найти все сообщения от Aleksey140569
 
Регистрация: 13.02.2015
Сообщений: 3

Рони, большое большое спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 23.05.2017, 12:16
Новичок на форуме
Отправить личное сообщение для Alexey1985 Посмотреть профиль Найти все сообщения от Alexey1985
 
Регистрация: 23.05.2017
Сообщений: 1

Нет. К сожалению это не вариант. В целях обучения, нужно обязательно решить эту задачу с использованием метода indexOf();
Ответить с цитированием
  #7 (permalink)  
Старый 23.05.2017, 12:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Alexey1985
В целях обучения
Сообщение от Aleksey140569
18.02.2015
Ответить с цитированием
  #8 (permalink)  
Старый 23.05.2017, 14:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Alexey1985,
<!DOCTYPE html>
<html>
<head>
    <title>Lesson018</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    b{
      background: #FFCC33;
       font-size: 48px;
       border-radius:4px;

    }
    </style>

</head>
<body>
    <p id="text"></p>

    <script type="text/javascript">

        var text = "Стучат по стыкам колеса, плещется в большом медном чайнике кипяток. В теплушке, под потолком, тускло светит аккумуляторная лампочка, на нарах, застеленных невиданной здесь пенкой, сидят и лежат спецназовцы. Кто дремлет, кто не торопясь курит и разговаривает, а дежурная смена находится у дверей при оружии и в полной боевой готовности. Полковник Бережной и генерал Бонч-Бруевич сидят у приоткрытого багрового зева буржуйки, и ведут свой неспешный разговор. Обсуждается извечный на Руси вопрос — кто виноват, и что делать. Сейчас разговор крутился вокруг первой половины ХХ века, ставшей для России воистину дорогой на Голгофу. Генерала интересовало то, как увести страну с этого пути, и какова при этом должна быть роль армии.";
        var el = document.getElementById("text")
        el.innerHTML = text;

    function findWord(event)
        {   event.preventDefault();
            var word = myform.search.value;
            var target = "<b>" + word + "</b>";
            var text2 = text;
            var len = word.length;
            var lenTarget = target.length
            var pos = -1;
            while(word && (pos = text2.indexOf(word, pos+1)) != -1)
            {
                text2 = text2.slice(0, pos) + target + text2.slice(pos+len) ;
                pos+=lenTarget;
            }
            el.innerHTML = text2;
     }
    </script>
    <form name="myform">
        <p>Введите слово: </p>
        <input type="text" name="search"  value="кто"/>
        <input type="submit" value="Найти" onclick="findWord(event)" />
    </form>

</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите расшифоровать, что делает скрипт Batyabest Events/DOM/Window 10 31.07.2014 13:27
Мотоциклисты есть? l-liava-l Оффтопик 13 04.07.2014 13:35
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Объясните мне что я делаю не так. Yanub Общие вопросы Javascript 10 24.08.2009 13:04
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30