直接看代码:
参数说明:
str:就是字符串
len:所要限制的字数
str2:以什么来结束,如果不输入就是以...结束
这里作为参数传进来,用户可以任意几个点
//限制字数 function mCutStr(str, len, str2) { if (str == '') { return ''; } if (str2 == '') { var str3 = ''; } else { var str3 = str2 || '...'; } var str_length = 0; //实际长度 var str_len = 0; str_cut = new String(); str_len = str.length; for (var i = 0; i < str_len; i++) { a = str.charAt(i); str_length++; //中文的情况多加1 if (escape(a).length > 4) { //中文字符的长度经编码之后大于4 str_length++; } str_cut = str_cut.concat(a); if (str_length <= len && (i == (str_len - 1) || i == (str_len - 2))) { return str; } if (str_length >= len && i < (str_len - 2)) { str_cut = str_cut.concat(str3); return str_cut; } } }
用的时候直接调方法就ok,
今天又弄了一下
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS限制输入字数</title> </head> <body> <p id="p1"></p> <p id="p2"></p> <script type="text/javascript"> function cutstr(str,len,end){ if (str == '') { return ''; } if (end == '') { var str3 = ''; } else { var str3 = end || '...'; } var str_length = 0; var str_len = 0; str_cut = new String(); str_len = str.length; for(var i = 0;i<str_len;i++){ a = str.charAt(i); str_length++; if(escape(a).length > 4){ str_length++; } str_cut = str_cut.concat(a); if(str_length>=len){ str_cut = str_cut.concat(end); return str_cut; } } if(str_length<len){ return str; } } var a = "阿11ss莱s克剪s短发绿卡s时间的福利卡收费"; var b = "你好你好你好你好你好你好"; var p1 = document.getElementById("p1"); var p2 = document.getElementById("p2"); p1.innerHTML = cutstr(a,10,'..'); p2.innerHTML = cutstr(b,10,'....'); </script> </body> </html>