项目中用到了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; } }