项目中用到了ckeditor,要求正文字数判断必须排除空格及回车等。
这个问题纠结了半个小时,其中曲折暂且不说了,验证了好几十次,这其中也借鉴了不少别人的成果,好了,直接上结果。
function strlen(str) {
//<summary>获得字符串实际长度,中文2,英文1</summary>
//<param name="str">要获得长度的字符串</param>
var regExp = new RegExp(" ","g");
str = str.replace(regExp , "");
str = str.replace(/\r\n/g,"");
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) realLength += 1;
else realLength += 2;
}
return realLength;
};
function save()
{
//var caseText = editor.document.getBody().getHtml();
var caseText = CKEDITOR.instances.caseText.getData();
//alert(CKEDITOR.instances.caseText.document.getBody().getText());
var caseforlen = CKEDITOR.instances.caseText.document.getBody().getText();
if (strlen(caseforlen) > 4000) {
alert("案例正文字数不能大于2000字");
return;
}
}