㈠ 用js怎么实现限制字符的长度最多为24个字符(包括中文、字母、数字、标点符号)。
//获取字符数抄,1个中文袭=2个英文字符
//参数:对象
function gw_js_checkform_str_len(str){
var value=str;
var length=value.length;
if(length>0){
for(var i=0;i<length;i++){
var value_substr=value.substr(i,1); //截取字符串
var value_escape=escape(value_substr); //编码
if(value_escape.indexOf('%u')>-1){length++;} //是否搜索到指定字符串
//if(value_escape.length>3){length++;} //也可使用此语句替换上一条语句
}
}
return length;
}
㈡ JS获取字符串长度的问题!~
你这态度不太好,人家 303392049 给你回答问题,不管对不对 都不应该这样说。专。
字符串里面应该是属html源代码
比如: $context="你好<br/>大家好<br/>全都好";
简单获取字符串用 $context.length
如果1个中文字算两个字符的话用下面的函数 getLength($context);
function getLength(str){
var len=str.length;
var reLen=0;
for(var i=0;i<len;i++){
if(str.charCodeAt(i)<27 || str.charCodeAt(i)>126){
reLen +=2;
}else{
reLen ++;
}
}
return reLen;
}
㈢ js获取一个字符串的字节长度
因为中文字占两个字节,英文占一个字节。
方法1:把中文字替换成两个字母。然后计算长度。
方法2:直接判断中文,长度+2。
运用的方法大同小异。都是通过正则表达式,写unicode编码。
方法1中
[\u4e00-\u9fa5]:匹配中文字符
[^\x0000-\x00ff]:匹配双字节字符(包括中文字)
正则表达示 /[\u4e00-\u9fa5]/g 的 g 必须要,global,全部都要检查的意思。没有的话输出的是(2333aa哈)
方法2中的函数
扩展:
㈣ js取字符串长度
如果其中有英文、数字、符号等,用楼上的 alert("1sS#符".length) 方法是极度不准确的。其结果为回 5
alert(len("1sS#符")) //英文、数字、答符号均为一个字节,汉字为两个。 因此结果为 6
function len(s) {
var l = 0;
var a = s.split("");
for (var i=0;i<a.length;i++) {
if (a[i].charCodeAt(0)<299) {
l++;
} else {
l+=2;
}
}
return l;
}