一般数据库中的varchar类型能包含的字符长度是有上限的,而通过富文本编辑器输出的内容通常包含一堆HTML代码,也会占用字符数,当一篇文章很长时,很容易导致返回数据库异常,直接反应出来的是页面罢工了,很影响用户体验。所以一般做两处修改:1、限制编辑器的字数2、将数据库中保存该内容的字段的类型设置为CLOB
一、编辑器字数限制
我用的是KindEditor,基础配置请参看:【简单教程】js插件之kindeditor
在KindEditor的配置中添加,以下代码:
afterChange : function() { $('.word_count1').html(this.count()); //字数统计包含HTML代码 $('.word_count2').html(this.count('text')); //字数统计包含纯文本、IMG、EMBED,不包含换行符,IMG和EMBED算一个文字 var limitNum = 100; //设定限制字数 var pattern = '还可以输入' + limitNum + '字'; $('.word_surplus').html(pattern); //输入显示 if(this.count('text') > limitNum) { pattern = ('字数超过限制,请适当删除部分内容'); //超过字数限制自动截取 var strValue = editor.text(); strValue = strValue.substring(0,limitNum); editor.text(strValue); } else { //计算剩余字数 var result = limitNum - this.count('text'); pattern = '还可以输入' + result + '字'; } $('.word_surplus').html(pattern); //输入显示 //////// } });
在你要显示字数信息的位置加上:
您当前输入了 0 个文字。(字数统计包含HTML代码。) 您当前输入了 0 个文字。(字数统计包含纯文本、IMG、EMBED,不包含换行符,IMG和EMBED算一个文字。)
二、实体类设置
在@Column字段上加上columnDefinition = "CLOB"
,我这里是spring的后台,其他语言在相应的字段上加上字节限制即可。