Как я могу выделить элементы, которые соответствуют регулярному выражению в CKeditor?
Я хочу иметь возможность выделить (т.е. обернуть в промежуток цветом или другим способом) весь текст, соответствующий регулярному выражению в CKEditor. Я'Я, вероятно, добавил бы кнопку, чтобы сделать это, и кнопку, чтобы удалить выделение. Мой конкретный вариант использования - выделить все переменные усов в моих HTML-шаблонах (чтобы было действительно легко увидеть, где есть переменные усов).
мы реализовали версию, в которой я заменяю усы, соответствующие регулярному выражению, на span, а затем группу захвата. Похоже, это нарушает некоторые шаблоны при тестировании.
Чтобы удалить выделение, я использую editor.removeStyle, который неКажется, что работает во всех случаях.
Вот пример того, что ямы реализовали:
editor.addCommand( 'highlightMustache', {
exec: function( editor ) {
editor.focus();
editor.document.$.execCommand( 'SelectAll', false, null );
var mustacheRegex = /{{\s?([^}]*)\s?}}/g;
var data = editor.getData().replace(mustacheRegex, '<span style="background-color: #FFFF00">{{ $1 }}</span>');
editor.setData( data );
}
});
// command to unhighlight mustache parameters
editor.addCommand( 'unhighlightMustache', {
exec: function( editor ) {
editor.focus();
editor.document.$.execCommand( 'SelectAll', false, null );
var style = new CKEDITOR.style( { element:'span', styles: { 'background-color': '#FFFF00' },type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1 } );
editor.removeStyle( style );
editor.getSelection().removeAllRanges();
}
});
Спасибо!