Page 269 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 269

g
       input . s tartsWith ( " g oin " ,   9 )   1 1   true   начать  9-й  позиции
                          g
       input . e ndsWith ( "goin " ,   1 4 )    1 1   true   считать  1 4 - ю  позицию  концом  строки
                          g
       input . includes ( "goin " )    1 1   true
                          g
                      "
       input . includes (  g oin " ,   1 0 )    1 1   false  -- начать  с  1 0 -й  позиции
       input . indexOf  " g oin " )    1 1   9
                         g
                    (
       input . indexOf ( "goin " ,   1 0 )    1 1   -1
                         g
       input . indexOf ( "поре" )    1 1   -1
          Обратите внимание, что все эти методы чувствительны к регистру.  Так, вызов
                         "
                  t
       input . star s Wi th (  a s " )   возвратил бы false. Если вы хотите сделать сравнение не­
       зависящим от регистра, можете просто преобразовать строку в нижний регистр.
       input . toLowerCas ( )   . s tartsWith ( " as " )   //  true
                      e
          Обратите внимание, что это не изменяет исходную строку; String . prototype .
                 s
       toLowerCa e   возвращает новую строку и не изменяет исходную (не забывайте, что
       строки в JavaScгipt неизменны!).
          Если мы хотим сделать следующий шаг и, найдя подстроку, заменить ее, то можем
       использовать String . prototype . rep a ce.
                                         l
       const  input  =  "As  I  was  going  to  Saint  Iv s " ;
                                              e
       const  output  =  input . r eplace ( " going" ,   "walking" )  ;
          И  снова исходная строка (input)  не изменяется в  результате выполнения этой
       замены; output теперь содержит новую строку, в которой слово  " g oing" заменено
       на "walking"  (если вам действительно нужно изменить значение переменной input,
       воспользуйтесь оператором присваивания).

       Созда и е   реr   уля р н ы х   выраже н и й
               н
          Прежде чем перейти к сложности метаязыка регулярных выражений, давайте пого­
       ворим о том, как они фактически создаются и используются в JavaScript. В этих приме­
       рах, как и прежде, мы будем искать определенную строку. Хотя это и слишком легкая
       задача для регулярных выражений, так проще объяснить, как они используются.
          Регулярные выражения в  JavaScript представлены классом RegExp. Хотя  вы  мо­
       жете создать регулярные выражения, используя конструктор RegExp, они настолько
       важны, что для них предусмотрен собственный литеральный синтаксис. Литералы
       регулярных выражений заключаются в символы наклонной черты.

       const  rel   / g oing/ ;        / /  регулярное  выражение,  способное
                                       1 1   искать  слово  "going"
                             "
                                  g
       const  re2   new  RegExp (  g oin " } ;  / /  эквивалентный  конструктор  объекта
          В  использовании  конструктора RegExp есть определенный резон,  который  мы
       рассмотрим далее в этой главе, но, кроме этого частного случая, следует предпочесть
       более удобный литеральный синтаксис.



       272      Глава  1 7. Регулярные выражения
   264   265   266   267   268   269   270   271   272   273   274