文字列をあれこれしてしまおうぞ
変数がStringタイプの時に使用できるオブジェクトです。
文字列を変更したりすることができます。
良く使いそうなメソッドを抜粋しています。
String.replace
文字列を置換します。
//-------------------------- // 引数指定 //-------------------------- String.replace([置換対象文字],[置換する文字]); //-------------------------- // 戻り値 //-------------------------- // 置換後の文字列 置換対象がない場合はそのまま戻る
var test = 'ホンマにお前はXXやで'; test = test.replace('XX','妖怪金くれぇ'); alert(test); // ホンマにお前は妖怪金くれぇやで
但し、最初にマッチした時点で検索・置換処理は終了します。
全ての文字を置換したい場合は、正規表現を使用して置換するのが一般的です。
正規表現についてはまた後程、って事で。
// replaceをそのまま使った時 var test = '○○!と叫んだときには、すでに○○の姿はなかった。南無三。谷底に落ちたんだろう'; test = test.replace('○○','うーちゃん'); alert(test); // うーちゃん!と叫んだときには、すでに○○の姿はなかった。南無三。谷底に落ちたんだろう // 正規表現を使用した時 test = '○○!と叫んだときには、すでに○○の姿はなかった。南無三。谷底に落ちたんだろう'; test = test.replace(/○○/g,'うーちゃん'); // gを付けることで全検索を行う。 alert(test); // うーちゃん!と叫んだときには、すでにうーちゃんの姿はなかった。南無三。谷底に落ちたんだろう
String.slice
文字列を指定範囲で取り出します。
//-------------------------- // 引数指定 //-------------------------- String.slice([開始文字数],[終了文字数]); // 終了文字数は任意、無ければ最終文字まで // 終了文字はマイナス指定で最後から数えて何文字目って事になります。 // 終了文字数が対象の文字数より多い場合は最終文字まで取り出します。 // 開始文字数 > 終了文字数の場合は空が戻されます。 //-------------------------- // 戻り値 //-------------------------- // 取り出した文字
var test = '60万くれたら寿司おごってやるよ!ただではおごらんぞ'; test = test.slice(7,-6); alert(test); // 寿司おごってやるよ!ただで
String.split
指定文字で区切って配列にデータを入れ込みます。
//-------------------------- // 引数指定 //-------------------------- String.split([区切り文字]); //-------------------------- // 戻り値 //-------------------------- // 配列 // 区切り文字が存在しない場合でも配列に格納されてきます
var test = '2015/03/31'; test = test.split('/'); console.log(test); // [2015,03,31]
String.indexOf
指定文字でが含まれているかどうかをチェックします。
//-------------------------- // 引数指定 //-------------------------- String.indexOf([検索文字]); //-------------------------- // 戻り値 //-------------------------- // 文字列開始位置 // 存在しない場合は-1が返ってきます。
var test = 'A「重要な連絡をするぞ!まずは」C「ちくわ大明神」B「はい!わかりました!」'; if(test.indexOf('ちくわ大明神') >= 0) { alert('誰だ今の'); } else { alert('ちくわ大明神どこいった'); }
String.mach
指定された条件に一致した文字列を配列に格納して戻します。
//-------------------------- // 引数指定 //-------------------------- String.mach([正規表現]); //-------------------------- // 戻り値 //-------------------------- // 一致した文字配列 // 存在しない場合は nullが返ってきます。
var str = "睦月如月弥生卯月皐月"; var re = /(睦月|卯月)/gi; var found = str.match(re); alert(found); // [睦月,卯月] //---------------------------------- // 正規表現での文字列存在確認方法 //---------------------------------- if(str.match(re) != null) { // 条件にマッチした } else { // マッチしなかった }
練習問題的な
-
1:文字置換
今日はサバ寿司を食べた。明日はサバ寿司を作る。
お客さんの為に、お客さんの笑顔の為に心を込めてサバ寿司を作る。
そして目の前でサバ寿司を食う。唖然とした表情がたまらない。サバ寿司は良いものだ
上記文章内のサバをマスに置換して表示してください。
※表示方法はconsole.logでOK -
2:文字列取り出し+文字連結
焼き肉食いに行こうぜ!俺は焼き肉が食べたい。全額お前が支払え。俺は小銭くらいなら出してやる。腹いっぱい食いたい。えへへ。楽しみだ。
上記文章を切り取り
焼き肉食いに行こうぜ!俺が全額出してやる。腹いっぱい食え
の文章として表示させてください。
※縛りとして、前からのカウントと後ろからカウントしたもの両方使うようにしてください。
※回数と使用位置は任意です。
※表示方法はconsole.logでOK -
3:文字列分割
犬も歩けば棒にも_落ちる_木から_猿も_当たる
上記文章を_で区切り
犬も歩けば棒にも当たる
猿も木から落ちる
の文章を表示させてください。
※表示方法はconsole.logでOK