㈠ 用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;
}