ImpressCMS
HOME  >  JSCRIPT  > 様々なオブジェクト > Stringオブジェクト > Stringメソッド

 6 - 6 - 2 : Stringメソッド

文字列を操作するStringメソッドはたくさん準備されています。その中でよく使いそうなものを紹介します。
他にもたくさんあるので、そこは色々検索してみてください。
 
メソッド名 説明
文字列.indexOf(検索文字列)  前から順に検索文字列を検索する。あったら最初に見つかった文字目を返す。ない場合は-1
文字列.charAt(数値)  数値番目の文字を返す(ただし最初は0文字目)
文字列.replace(文字列1,文字列2) 文字列の中の文字列1を文字列2に置換する
文字列.match(パターン) 正規分布のルールに従ってマッチするかどうかを確認する。ない場合はnullを返す
文字列.substring(start,end)  文字列のstart文字目からend文字目までを取得する(ただし最初の文字は0文字目)
文字列.substr(start, length)   文字列のstart文字目からlength文字を取得する
文字列.concat(追加する文字列)  文字列に文字列を追加する(複数の文字列を追加するときには「,」を使う)
文字列.split(分割文字) 分割文字を境に文字列を分割する
文字列.toUpperCase() 文字列を大文字に変換する(アルファベット)
文字列.toLowerCase() 文字列を小文字に変換する(アルファベット)

では、実際にいくつかの例題をやってみましょう。
まず、promptメソッドで文字列を入力しmesという変数に格納します。そしてそのなかに「あ」が含まれているかを確認してみましょう。
先ほどのpractice9.htmlのスクリプトに追加します。
 
var mes = prompt("文字列を入力してください")
document.write("入力された文字列は"+mes+"です。<br>");
var ans = mes.match("あ");
if(ans == null){
    document.write("文字列に「あ」は含まれていません");
} else {
    document.write("文字列に「あ」が含まれています!");
}
含まれている場合と含まれていない場合で答えが異なることを確認できたでしょうか。

次に文字列の置換を行ってみましょう。
文字列asa「今日は早朝から、朝日がとてもきれいだった」を
①「朝」を「夕」に置換してみましょう ②「きれい」を「まっか」に置換してみましょう。

置換するメソッドはreplaceですので、
以下のようなスクリプトになります。
var asa= "今日は早朝から、朝日がとてもきれいだった";
var asa2 = asa.replace("朝","夕");
var asa3 = asa.replace("きれい", "まっか");

document.write("①は"+asa2+"<br>");
document.write("②は"+asa3+"<br>");

日本語としては①は何となくおかしいですが、置換の練習ということでご理解ください。

Stringオブジェクトの3つ目は文字列の分割です。splitオブジェクトですね。

例えば電話番号 「093-000-1234」という文字列があったときに、この文字列を 093 と 000 と 1234に分割したいというときがあります。
この時は「-」を分割のキーワードにすれうまく分割できます。分割した結果は、配列として格納されます。
var denwa = “093-000-1234”;

という変数があり、これを093 000 1234と分割したい場合は、
var tel = denwa.split(“-“);

という書き方をします。別れた結果は、telに配列として格納されます。
tel[0]に093がtel[1]に000がtel[2]に1234が代入されました。

では、実際にcsvファイルのように、データが「,」で区切られているものを分割してみましょう。文字列としては”11,22,33,474,55”という文字列から分割することにしましょう
var moji = "11,22,33,474,55";
document.write("元の文字列は"+moji+"<br>");
var kotae = moji.split(",");
// ここで配列の数を取得するlengthプロパティを使う(これはarrayオブジェクトで説明します)
var count = kotae.length;
document.write("分割された文字は"+count+"個です。<br>");

for(var i=0; i<count; i++){
    document.write((i+1)+"番目の数は"+kotae[i]+"<br>");
}

ちゃんと文字列が分割されましたか?
 
Publish : 5416 bytes - updated 2024-08-01 by 管理人