Почему RegExp.escape превращает foo-bar в строку с hex-escape
Вы собираете регулярное выражение из строки поиска и хотите искать её буквально.
У
На карточке — выполненный пример в Node 24.19.0. Регулярное выражение совпадает с
📎 Правила экранирования в MDN.
Вы собираете регулярное выражение из строки поиска и хотите искать её буквально.
RegExp.escape экранирует строку для вставки в шаблон.У
foo-bar первая буква превращается в \x66, а дефис — в \x2d. Экранирование первой буквы не даёт ей слиться с предшествующей escape-последовательностью. Для дефиса нужен hex-escape, потому что простой обратный слеш перед ним вне класса символов недопустим в Unicode-режиме.На карточке — выполненный пример в Node 24.19.0. Регулярное выражение совпадает с
foo-bar и отвергает fooXbar. API предназначен для буквального поиска. Он не очищает HTML и не защищает от всех опасных regex. Для старых сред нужна проверка наличия API или подходящий полифил.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Selector Stats помогает разбирать затраты на Recalculate Style
По длительности события
До записи включите
После правки повторите тот же сценарий и сравните длительность. Затем отключите сбор статистики: он добавляет накладные расходы.
📎 Порядок записи и чтения Selector Stats.
По длительности события
Recalculate Style в Performance trace ещё нельзя понять, какой селектор стоит менять. Для этого в DevTools есть Selector Stats.До записи включите
Enable CSS selector stats, повторите проблемный сценарий и откройте событие пересчёта стилей. Elapsed показывает время сопоставления, Match Attempts — число попыток, Match Count — число совпадений. Большое число попыток само по себе не доказывает, что селектор тормозит страницу.После правки повторите тот же сценарий и сравните длительность. Затем отключите сбор статистики: он добавляет накладные расходы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1