How could I find and replace text in CKEditor 5 using JavaScript and jQuery?
I want to find special character ‘@’ in the text and replace all characters after ‘@’ and ‘@’ character too on my own text.
I am using change:data…
window.editor.model.document.on('change:data', () => {
});
Advertisement
Answer
you need editor.getData() and editor.setData(), then use Regex @w+ to match @, alphanumeric and space, without matching space it only work on paste but you can’t type @user because when typing @u it will replaced with newString
the example below
ClassicEditor
.create(document.querySelector('#editor'))
.then(editor => {
editor.model.document.on('change:data', () => {
let content = editor.getData();
if (/@w+( |s)/gi.test(content)) {
content = content.replace(/@w+( |s)/gi, 'newString ')
editor.setData(content)
}
})
})<script src="https://cdn.ckeditor.com/ckeditor5/34.0.0/classic/ckeditor.js"></script> <div id="editor"></div>