????
??? 做項目時自己寫一段js給大家。關于文本限制字數的問題,在實際開發中經常用到;主要問題出現在對中文的限制,因為大多數據庫都是按字節限制,而web中屬性maxlength限制個數,非字節數,因此遇到中文就會出問題。下面代碼就解決關于限制字節數的校驗問題;只要將此下代碼保存到一個js文件中并引入到校驗的頁面中,便可使用!同時希望大家給與大力支持和寶貴意見,本人會在今后閑余之際,發表更多的好文章,謝謝!!
?
/*
?value:?值;
?byteLength:數據庫字節長度
?title:字段中文名稱
?attribute:屬性名稱
?使用方法說明:
添加?(1)?onkeyup="limitLength(this.value,100,'名稱','name')"
??????????(2)??id="name"?或【struts標簽】styleId="name"
?注意:id名稱和?attribute屬性名稱要一樣
?????
?例子:<textarea??name="explain"?id="explain"?onkeyup="limitLength(value,5,'語義說明','explain')"?>?
?或
<input?type="text"???name="explain"??id="explain"?onkeyup="limitLength(value,5,'語義說明','explain')"?>
*/
function
?limitLength(value,?byteLength,?title,?attribute)?{
???????
var
?newvalue?
=
?value.replace(
/
[
^
\x00
-
\xff]
/
g,?
"
**
"
);
???????
var
?length?
=
?newvalue.length;
?
???????
//
當填寫的字節數小于設置的字節數
??????
if
?(length?
*
?
1
?
<=
byteLength?
*
?
1
){
????????????
return
;
??????}
??????
var
?limitDate?
=
?newvalue.substr(
0
,?byteLength);
??????
var
?count?
=
?
0
;
??????
var
?limitvalue?
=
?
""
;
?????
for
?(
var
?i?
=
?
0
;?i?
<
?limitDate.length;?i
++
)?{
?????????????
var
?flat?
=
?limitDate.substr(i,?
1
);
????????????
if
?(flat?
==
?
"
*
"
)?{
??????????????????count
++
;
????????????}
?????}
?????
var
?size?
=
?
0
;
?????
var
?istar?
=
?newvalue.substr(byteLength?
*
?
1
?
-
?
1
,?
1
);
//
校驗點是否為“×”
??
????
//
if?基點是×;?判斷在基點內有×為偶數還是奇數?
?????
if
?(count?
%
?
2
?
==
?
0
)?{
??????????????
//
當為偶數時
????????????size?
=
?count?
/
?
2
?
+
?(byteLength?
*
?
1
?
-
?count);
????????????limitvalue?
=
?value.substr(
0
,?size);
????}?
else
?{
????????????
//
當為奇數時
????????????size?
=
?(count?
-
?
1
)?
/
?
2
?
+
?(byteLength?
*
?
1
?
-
?count);
????????????limitvalue?
=
?value.substr(
0
,?size);
????}
???alert(title?
+
?
"
最大輸入
"
?
+
?byteLength?
+
?
"
個字節(相當于
"
+
byteLength?
/
2
+
"
個漢字)!
"
);
???document.getElementById(attribute).value?
=
?limitvalue;
???
return
;
}
posted on 2006-09-11 12:53
扁豆 閱讀(525)
評論(2) 編輯 收藏