微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SunEditor在React中-输入了验证文本吗?

如何解决SunEditor在React中-输入了验证文本吗?

问题

我想验证用户是否在编辑器中输入了实际文本,而忽略了html标签和空格。

详细信息

  • 我正在使用ReactJS SunEditor组件
  • 我正在使用 Typescript

这是当用户不输入任何内容时的内容示例:

   <p><br>
</p>

和另一个

<p>&nbsp;</p>

尝试的解决方

我尝试过将正则表达式放入onChange事件中,但是它很笨拙,可能不会考虑非文本内容表示的所有不同方式;我需要更好的方法

const regex = /(<([^>]+)>)/ig;

模糊的想法

我看到SunEditor javascript API有一个实用程序方法onlyZeroWidthSpace,它返回一个布尔值。它可能会起作用,但是我看不到如何访问它。我正在使用Typescript,所以那里可能有问题吗?

感谢您的帮助!

解决方法

您好,我是 SunEditor React 组件的作者。请通过将引用附加到 SunEditor 组件来访问核心 SunEditor 实例(您可以从 documentation 中查看)。同样要获取平面文本(非 html 文本),请在编辑器对象上使用 getText 方法。 下面的例子:

editorRef.current.editor.getText()

请注意,editorRef 是附加到 SunEditor 组件的引用。

,

这是一种时髦的方法,似乎很奏效。我们欢迎并邀请其他任何建议。

 onChange={content => {

            const contentTestContainer = document.createElement('div');
            contentTestContainer.innerHTML = content;
            const textContent = contentTestContainer.textContent;
            
            if (textContent) {
                props.getFieldHelpers('description').setValue(content);
            }
        }}
,

所有事件处理程序都绑定核心对象。 onChange

editor.onChange = (contents,core) => {
   // You can use the util object
   core.util.onlyZeroWidthSpace();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。