- 47
- 0
目前在用编辑器simditor,现在的一个需求是要给这个编辑器加一个字数限制。
能实时获取到当前编辑器内的value,例如:
<p style="font-size=14px">123456</p>
假如我限制五个字数的话,截断之后应为:
<p style="font-size=14px">12345</p>
统计字数很简单,只需要过滤掉标签,然后看过滤后的文本的长度就可以了。
但是在截断带有标签文本就犯难了,我该怎样准确又快捷的找到应该截断的位置呢?
曾经想到过一种取捷径的方法。就是在每次编辑器内值改变的时候(onValueChange)与改变之前的值(currentValue)进行对比,如果有更改之后,就进行正则去掉标签计算长度,若超过长度则将原来的值(currentValue)重新赋值给编辑器。
但是这个捷径在后来遇到了很多坑…… 首先他如果粘贴文字到超过限制字数的话,这段文字是粘不上的。我目前已经没有除了截取对应位置之后文字之外其他的方法。恳请各位大佬帮帮忙
var editorValue = editor.getValue();
var actualText_num = editorValue.replace(/<\/?[^>]*>/g,'').replace(/[ | ]*\n/g,'\n').replace(/\n[\s| | ]*\r/g,'\n').replace(/ /ig,'').length;
editor.on('valuechanged', function(e, type) {
var tmp_editorValue = editor.getValue();
if(tmp_editorValue === editorValue){
return;
}
var tmp_actualText = tmp_editorValue.replace(/<\/?[^>]*>/g,'').replace(/[ | ]*\n/g,'\n').replace(/\n[\s| | ]*\r/g,'\n').replace(/ /ig,'');
if(tmp_actualText.length > 50 && tmp_actualText.length >= actualText_num ){
editor.setValue(editorValue);
editor.focus();
}else{
editorValue = tmp_editorValue;
actualText_num = tmp_actualText.length;
}
…… 按照一楼的提示我查了一下uEditor的maximumWords,发现在官网的演示上,他只是在右下角提示了字数统计,在超过限制的时候给了一个警告…… 并没有截断这个操作。再次陷入尴尬
1
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
