CKEditor 5,jQuery - 查找和替换文本

CKEditor 5, jQuery - find and replace text

如何使用 JavaScript 和 jQuery 查找和替换 CKEditor 5 中的文本?

我想在文本中找到特殊字符“@”,并在我自己的文本中替换“@”和“@”字符之后的所有字符。

我正在使用 change:data...

window.editor.model.document.on('change:data', () => {

});

你需要 editor.getData()editor.setData(),然后使用正则表达式 @\w+  来匹配 @alphanumericspace,而不匹配 space 它只适用于粘贴,但你不能输入 @user 因为当输入 @u 时它会被替换为 newString

下面的例子

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>