2009年6月15日 星期一

計算或限制計算字(元)數

計算字(元)數

a(半形)就是1個字元,而a(全形)卻是2個字元,若資料庫中欄位是設成30個字元的話,用來存放1個字元的字可以放30個,但是2個字元只能存放15個,那混合的話要怎麼計算呢?

首先要知道在ASCII中,0~255都是1個字元的字,255以後的都是2個字元,現在只要在count()函式中判斷輸入的字是共字元,而maxChr及nowChr則變成是最大幾字元及目前已輸入幾字元。

<script type="text/javascript">
<!--
//設定最多可輸入多少字元
var maxChr = 30;
//用來儲存目前已輸入多少字元
var nowChr = 0;
//計算字數
function count(value){
//先歸0
nowChr = 0;
//for迴圈判斷value中的每一個字是否在0~255間,用來判別中英文
for(var i=0;i<value.length;i++){
value.charCodeAt(i)<256?nowChr++:nowChr+=2;
}
document.getElementById("info").innerHTML="目前已輸入"+nowChr+"個字元,最多可輸入"+maxChr+"個字元。";
}
//檢驗字數是否<=maxChr
function check(){
if(nowChr>maxChr) alert("你多輸入了"+(nowChr-maxChr)+"個字元。");
else alert("你輸入的沒問題!");
}
//初始化DIV部份用
document.getElementById("info").innerHTML="目前已輸入"+nowChr+"個字元,最多可輸入"+maxChr+"個字元。";
//-->
</script>

網誌存檔