站內搜尋:Yahoo搜尋的結果,如果沒有給完整的網址,請在站內再搜尋一次!

2015-10-03

JavaScript 半形轉全形‏

AS/400中文自有 0E 0F 隱藏字元的問題,這對需要計算有中文字和ASCII字元混雜的字串長度來說,好像有一點小複雜,所以就來個投機的方法,就把所有ASCII的半形字元轉換為對應的全形文字,來避開 0E 0F所帶來計算實際字串長度所帶來的困擾。

function Half2Full() {
    var i = 0;
    vat aTmp = new Array();
    var zStr1 = document.getElementById("字串來源ID").value;
    var zStr2 = "";
    for(i = 0; i < zStr1.length; i++) {
        if(zStr1.charCodeAt(i) >=0 && zStr1.charCodeAt(i) <= 32) {
            aTmp[i] = 0;   //ascii 小於等於 32的字元,都先清為 null
        } else if(zStr1.charCodeAt(i) >=33 && zStr1.charCodeAt(i) <= 126)  {
            aTmp[i] = zStr1.charCodeAt(i) + 65248;   //ascii介於33~126之間的字元,加上65248準備轉為全型unicode
        } else {
            aTmp[i] = zStr1.charCodeAt(i);
        }
        zStr2 += String.fromCharCode(aTmp[i]);    //轉為全型unicode
    }
    document.getElementById("字串來源ID").value = zStr2;  //裝轉換結果回填到原來源字串位置
}

沒有留言:

張貼留言