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.


←前



専用ページから申し込むと
So-netより高い3万円CB

案ずるより産むが易し
使ってみれば疑問も解決

XREA+ (plus) 206円/月
( お試し7日間 )

CORE SERVER 428円/月
( お試し15日間 )

ロリポップ 270円/月
( お試し期間10日間 )

ヘテムル 1620円/月
( お試し期間15日間 )

さくら 129円/月
( お試し期間2週間 )

無駄な高額ドメイン管理料金払ってませんか?

バリュードメイン
ムームードメイン

2010年で第二世代携帯がサービス終了。ソフトバンクに乗り換えて安くなった人が7割以上います!