Closed kompolom closed 8 years ago
Ни одна из ссылок не дает требуемой информации :)
На первую меня не пускает, а на второй не показывается регулярка. Дай права, чтобы я мог перейти на первую ссылку и сюда можешь написать регулярку (я верю, что она корректна)
https://gist.github.com/kompolom/19e70ff1c336463a1a71 еще раз ссылка на гист маска
{{.*}}
{{(.|\n)*}}
ни одна не матчится на произвольный html. Для примера:
<textarea class="textarea textarea_theme_vr textarea_size_l textarea_width_available textarea__control i-bem" id="uniq14455148478992" name="body" placeholder="Ваш комментарий" data-bem="{"textarea":{}}"></textarea>
<textarea {{(.|\n)*}}></textarea>
Может просто совпадение, но заметил что регулярка стабильно не срабатывает на тексте где есть =
в дифе она тогда отображается не как регулярка, а как ожидаемый текст (зеленая)
А конкретно с каким HTML ты сравниваешь?
выше пример с textarea
Не, я понял какая регулярка у тебя не работает.
Я хочу увидеть два реальных HTML, которые html-differ должен посчитать одинаковыми :)
@eGavr как их показать?
Вот скрином сделал
Посмотрел в отладчике, насколько я понял, маска применяется только к одному токену. https://github.com/bem/html-differ/blob/master/lib/utils/mask.js#L42 который в свою очередь заканчивается кавычками. Я правильно понял?
Да, ты все верно понял, только не только кавычками, собственно я и хотел предложить тебе примерно следующее:
<textarea class="{{.*}}" id="{{.*}}" name="{{.*}}" placeholder="{{.*}}" data-bem="{{.*}}"></textarea>
@eGavr как их показать?
У enb-bem-tmpl-specs
, я так понял ты эту утилиту используешь, есть переменная среды окружения/опция, которая позволяет сохранять созданный в тесте HTML –> https://github.com/enb-bem/enb-bem-tmpl-specs#Опции
@eGavr спасибо за ответ. Тогда хочу попросить добавить фичу, которая будет работать на произвольном количестве токенов. Если это возможно
Очень странно хотеть на столько "не жестко" сравнивать HTML.
Вариант использования такой маски как ты хочешь фактически делает HTML не валидным, поэтому HTML-парсер в диффалке будет отрабатывать неправильно, поэтому и сравнение будет неправильным.
@eGavr Вообще ты прав. Спасибо что помог разобраться. Последний вопрос. Как добавить маску на необязательный атрибут. Например, в html может быть required=""
может required
а может и вообще не быть. Я как понимаю атрибут и его значение будут в разных токенах. Как сделать чтобы все три html посчитались одинаковыми? Или это тоже не стоит хотеть?
Я бы сказал, что тоже не стоит хотеть делать, что у тебя там за тесты ? :)
Ты уверен, что такое хотеть нормально ? :) (с точки зрения сравнения одинаковой работоспособности двух HTML)
Есть у диффалки фича, которая игнорирует значение атрибута, но она обязательно требует наличие атрибута, то есть в случаях, когда есть required=""
в одной HTML и required
в другой, то они будут считаться одинаковыми, но диффалка ругнется таки, если не будет этого атрибута вообще.
Спасибо за разъяснения!
вот пример того что хочется получить но никак не могу написать паттерн который бы подошел, хотя проверяю https://regex101.com/#javascript регулярка срабаывает