Page 91 - 6105
P. 91

Для пошуку підрядка є метод indexOf (підрядок [, початок]).

                      Він повертає позицію, на якій знаходиться підрядок або -1, якщо нічого не


               знайдено. наприклад:

                      var str = "Widget with id";

                      alert (str.indexOf ( "Widget")); // 0, тому що "Widget"
               знайдений прямо на початку str


                      alert  (str.indexOf  (  "id"));  //  1,  тому  що  "Id"
               знайдений, починаючи з позиції 1


                      alert (str.indexOf ( "widget")); // -1, що не знайдено,
               так як пошук враховує регістр

                      Необов'язковий  другий  аргумент  дозволяє  шукати,  починаючи  з  вказаної

               позиції.  Наприклад,  перший  раз  "id"  з'являється  на  позиції  1.  Щоб  знайти  його

               наступну появу запустимо пошук з позиції 2:

                      var str = "Widget with id";

                      alert (str.indexOf ( "id", 2)) // 12, пошук розпочато з

               позиції 2

                      Також існує аналогічний метод lastIndexOf, який веде пошук не з початку, а

               з кінця рядка. Для красивого виклику indexOf застосовується побітовий оператор

               НЕ '~'.

                      Справа в тому, що виклик ~ n еквівалентний виразу - (n + 1), наприклад:


                      alert (~ 2); // - (2 + 1) = -3
                      alert (~ 1); // - (1 + 1) = -2

                      alert (~ 0); // - (0 + 1) = -1

                      alert (~ -1); // - (- 1 + 1) = 0

                      Як видно, ~ n – нуль тільки в разі, коли n == -1.

                      Тобто,  перевірка  if  (~  str.indexOf  (...))  означає,  що  результат  indexOf

               відмінний від -1, тобто збіг є. Наприклад,

                      var str = "Widget";



                                                                90
   86   87   88   89   90   91   92   93   94   95   96