| String Object | |
|
StringオブジェクトとはJavaScript中で扱われる文字列(型変数)の事です。
生成は変数の代入 var YourName = "らいむ"; で行われ
このYourNameが文字列オブジェクトとなります。
正確にきちんと定義するには var YourName = new String("らいむ"); とするのが
正式な Stringオブジェクトの作り方のようですが、代入でじゅうぶんです。
プロパティは基本的に length だけ覚えておけばいいでしょう。
メソッドは文字列にタグを付け加えるようなものがありますが
とりあえず使わないので書きません。
使いたい方は、とほほさんの所などを参照してください。
プロパティ |
|
length プロパティのみ。
lengthとは、文字列オブジェクトの文字の数です。
注意するのは IEは 全角(2バイト文字)も 半角も どちらでも文字数を返します。
Netscapeでは 全角は 2と数え、半角は1と数えます。
しかし、NN4.5では IEと同じように文字数を返します。
NN4からなのかは知りませんが、NNも文字数を数えるようになったようですね。
メソッド |
|
メソッドは、かなり頻繁に使う物もあります。
IE4、NN4からは 正規表現と言うもっと便利な方法での
文字列操作が加わりましたが、まず基本的な字列操作を覚えてください。
このページでは正規表現に関しては触れていません。
charAt() | 特定の場所の文字1つを取出し返します |
string1.charAt(n)で string1の頭から n 番目の文字を返します。
先頭を 0 番目と数えます。
var site = "ARTEMIS";
var t = site.charAt(4);
変数 t には 文字 M が入ります。
元の文字列オブジェクト site は変更されません。
|
substring() | 特定の位置から位置の 連続する文字列を返します |
string1.substring(start,end)は、string1の start 番目から end-1 番目までを返します。
先頭の文字を 0番目と数えます。終りは取出す値の最後の次の場所です。
var site = "ARTEMIS";
var t = site.substring(2,4);
t には TE が入ります。
これは 2番目から 4番目の前までを取ると言う事で 2番3番目を取っています。
この辺に気を付けてください。
次に、もし startとendで startの方が数値が大きい場合
substring(4,0) 等の場合ですが、この場合は数が小さい方が
自動的に、startとして解釈されます。
つまり substring(0,4) と substring(4,0) は同じと言う事です。
これも取出した物を返す物なので、もとの siteは変化しません。
|
indexOf() | 文字列を探して結果を返します |
string1.indexOf(文字,n)は n 番目から後方に 文字と一致する場所を探します。
見つかった場合はその位置を返してきます。(n 以上の整数値)
見つからなかった場合は、-1 を返します。
文字は文字の値を持つ変数でも構いません。
大文字と小文字は区別されます。
n は省略できます。省略すると0番目から探します。
var site = "ARTEMIS";
var t = site.indexOf("TE");
t には TE の先頭のある位置 2が入ります。
よく使う条件文の方法として
if(site.indexOf("TE") !=-1 ){ ・・・ }
この場合 siteと言う文字列オブジェクトで、
もしTEと言う文字が見つかったら・・・と言う意味になります。
|
lastIndexOf() | 文字列を後ろから探して結果を返します |
string1.lastIndexOf(文字,n)は n番目から前方に文字と一致する場所を探します。
見つかった場合はその位置を返します。(nより小さい整数値)
見つからなかった場合は -1 を返します。
n を省略した場合は、一番後ろから探して行きます。
var site = "ARTEMIS";
var t = site.lastIndexOf("TE");
t には TEの見つかった先頭位置 2 が入ります。
lastIndexOf()はindexOf()と同じで、後ろから前へと言う点が違うだけです。
|
toLowerCase() | 小文字にします |
string1.toLowerCase()は string1の 英文字のみ小文字に変換した物を返します。
var site = "ARTEMIS";
var t = site.toLowerCase();
t には artemis が入ります。
例えば、indexOf()で文字列を探す時など、大文字と小文字が区別される為
この toLowerCase()や toUpperCase()を使って、確実性を高めたりします。
|
toUpperCase() | 大文字にします |
string1.toUpperCase()は string1の 英文字のみ大文字に変換した物を返します。
var site = "artemis";
var t = site.toUpperCase();
t には ARTEMIS が入ります。
例えば、indexOf()で文字列を探す時など、大文字と小文字が区別される為
この toLowerCase()や toUpperCase()を使って、確実性を高めたりします。
|
charCodeAt() | Unicodeの コード番号を返します |
string1.charCodeAt(n) は string1の n 番目の文字を コード番号にかえた物を返します。
var site = "ARTEMIS";
var t = site.charCodeAt(2);
t には T をコードにした 84と言う数字が入ります。
|
fromCharCode() | Unicodeのコード番号から文字へ戻します |
String.fromCharCode(a,b,c,d,e・・・) は a,b,c,d,eをコードとして解釈して
それらを文字に変換した物を返します。
ここでは、Stringは 固定です。どれかしらのオブジェクトを指す物ではないので
この通り String.fromCharCode() として使ってください。
var t = String.fromCharCode(65,82,84,69,77,73,83);
t には ARTEMIS とはいります。
コード化する事と文字変換する事ができるので、
ちょっとした暗号化などにも使えますね。
|
Tips & Samples |
|
Stringオブジェクトに関しては特にサンプルは必要ないでしょう。
オブジェクトのコピーの話ですが、Stringオブジェクトの場合は
代入によって定義できる物なので、代入によるコピーができます。
var TEST1 = "ABC";
var TEST2 = TEST1;
これで、TEST1とTEST2は別の文字列型変数として扱われます。
Copyright(C)1997-2006 ARTEMIS.
|
|