Page 286 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 286
можно избавиться от анонимной функции и использовать sanitizeATag непосред
ственно.
i
html . r eplace ( / <a . * ? < \ / a>/ig, sanit z e ATag) ;
Надеемся, что мощь этих функциональных возможностей очевидна. Всякий раз,
сталкиваясь с задачей, подразумевающей распознавание малых строк в пределах
большей строки и обработку меньших строк, помните, что можно передать функцию
в String . prototype . replace!
При в язка
Очень часто приходится учитывать вещи, которые должны происходить в начале
или конце строки, а также во всей строке сразу, а не в ее части. Здесь нам пригодятся
якоря (anchor). Есть два якоря: л, который соответствует началу строки, $ , который
и
соответствует концу строки.
const input = " I t was the best of t i m s , it was the worst of t i m s " ;
e
e
const beginning = input . m atch ( / л \ wt/g) ; 1 1 "It "
const end = input . m atch ( / \ w+$ / g ) ; 1 1 "times "
const everything = input . m atch ( / л . * $ / g ) ; 1 1 то же , что и на входе
const nomatchl input . m atch ( / лbest/i ) ;
g
const nomatch2 = input . m atch ( / worst$/i ) ;
g
У якорей есть еще один нюанс, о котором следует знать. Обычно они соответ
ствуют началу и концу всей строки, даже если в ней есть символы новой строки.
Если вы хотите обработать строку как многострочную (разделенную символами но
вой строки), используйте параметр m (multiline).
const input = "One line\nTwo l i n es \nThree l i nes \nFour" ;
g
e
const beginnings = input . m atch ( / л \ w+/m ) ; / / [ " On " , " T wo ", " T hree", "Four"J
const endings = input . m atch ( / \w $ / m ) ; // [ " li e " , "lines " , "lines " , "Four"J
+
n
g
Распозна в а н и е гран и ц сn ов
Одним из малоиспользуемых, но полезных элементов регулярных выражений, яв
ляются границы слова. Подобно якорям начала и конца строки, метасимвол грани
цы слова \Ь и его инверсия \В не перерабатывает входные данньtе. Это может быть
очень удобным свойством, как мы вскоре убедимся.
Г р аница слова определяется местом, где метасимволу \w предшествует или следу
ет после него метасимвол \W (не слово) либо символ начала или конца строки. Пред
положим, что вы пытаетесь заменить адреса электронной почты в английском тексте
гиперссылками (в этом примере мы подразумеваем, что адреса электронной почты
начинаются с символа и заканчиваются символом). Обсудим ситуации, которые сто
ит рассмотреть.
П р ивязка 289

