'CKEditor 5, jQuery - find and replace text

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', () => {

});


Solution 1:[1]

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>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 uingtea