WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:先頭指定バイトの文字列を取得

0:[投稿] のぐりん [MAIL] [2002/03/06 14:31 ][環境:不明 WIN系+VB]

悩んでるので、わかる方がいましたら、教えてください。

JavaScriptにて、文字列から先頭の指定バイト数分を抜き出す方法を、知りたいと思ってます。
ちょうど、VBでいうところのLeftBやMidBです。
sliceやsubstrは、バイト数でなく、文字数(全角も1文字)なので、
使えないです。
(環境はIE4以上、NN4.5以上です。)

バイト数を取得する関数は以下のように作成したのですが、
sliceやsubstrとどう組み合わせた良いのか思いつきません。

function lengthB(strSrc)
{
    var Trimlength;
    var len = 0;
    var iCode;// キャラクタコード

    if(!strSrc){
        return 0;
    }
    //不要な改行コードを無視する
    Trimlength=strSrc.length;
    for(i=strSrc.length-1;i>=0;i--){
        iCode = strSrc.charCodeAt(i);
        if(iCode!=13 && iCode!=10){
            Trimlength=i+1;
            break;
        }
    }
    for(i=0;i<Trimlength;i++){
        iCode = strSrc.charCodeAt(i);
        len += ((iCode>=0 && iCode<=255)||(iCode>=0xff61 && iCode<=0xff9f)) ? 1 : 2;
    }
    return len;
}


1:[完了] のぐりん [MAIL] [2002/03/06 15:04 ]

自己レスです。応用したら、出来ました。
以下のような関数です。

function substrB(strSrc,numStBite,numBite){
    var Trimlength;
    var len = 0;
    var iCode;// キャラクタコード
    var RtnStr = "";

    //不要な改行コードを無視する
    Trimlength=strSrc.length;
    for(i=strSrc.length-1;i>=0;i--){
        iCode = strSrc.charCodeAt(i);
        if(iCode!=13 && iCode!=10){
            Trimlength=i+1;
            break;
        }
    }

    for(i=0;i<Trimlength;i++){
        iCode = strSrc.charCodeAt(i);
        len += ((iCode>=0 && iCode<=255)||(iCode>=0xff61 && iCode<=0xff9f)) ? 1 : 2;
        if(len>=numStBite && len<numStBite+numBite){
            RtnStr = RtnStr + strSrc.substr(i,1);
        }
    }
    return RtnStr;
}

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World