Tôi muốn có thể làm nổi bật (tức là bọc trong một khoảng có màu hoặc cách khác) tất cả văn bản khớp với regex trong CKEditor. Tôi có thể thêm một nút để làm điều này, và một nút để loại bỏ làm nổi bật. Trường hợp sử dụng cụ thể của tôi là để làm nổi bật tất cả các biến ria mép trong các mẫu HTML của tôi (làm cho nó thực sự dễ dàng để xem nơi có các biến ria mép).Làm cách nào để đánh dấu các yếu tố khớp với regex trong CKeditor?
Tôi đã triển khai phiên bản mà tôi thay thế một ria phù hợp với regex bằng một khoảng và sau đó là nhóm chụp. Điều này dường như phá vỡ một số mẫu khi tôi kiểm tra.
Để xóa đánh dấu, tôi sử dụng editor.removeStyle, điều này dường như không hoạt động trong mọi trường hợp.
Dưới đây là một ví dụ về những gì tôi đã thực hiện:
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();
}
});
Cảm ơn!
Tôi khá có vấn đề tương tự.Tôi cần để có thể làm nổi bật một cái gì đó phù hợp với một regex trong khi gõ trong CKeditor. – Polygnome
"Điều này dường như phá vỡ một số mẫu khi tôi kiểm tra." - Làm thế nào nó phá vỡ? Ngoài ra, bạn có thể đưa mẫu mẫu vào câu hỏi của mình để sự cố có thể được sao chép không? Tương tự, "Tôi sử dụng editor.removeStyle, điều này dường như không hoạt động trong mọi trường hợp" - Bạn có thể đưa ra ví dụ về nơi nó không hoạt động không? –
gsastry và @Polygnome giải pháp ưa thích của bạn ngay bây giờ và bạn có lẽ là một ví dụ về nó? Vì tôi có nhu cầu tương tự để đánh dấu các dấu vị trí đầu và cuối "{" và "}" một cách tôn trọng. – melutovich