如何解决SunEditor在React中-输入了验证文本吗?
问题
我想验证用户是否在编辑器中输入了实际文本,而忽略了html标签和空格。
详细信息
- 我正在使用ReactJS SunEditor组件
- 我正在使用 Typescript
<p><br>
</p>
和另一个
<p> </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 举报,一经查实,本站将立刻删除。