文字列関連の説明(操作)

記事の作成日 : 2020/03/02

文字列操作は、プログラムを書き始めてから沢山やっていますね。

全く関係のない話
コロナ、はやり始めていますね。
ニュース番組はコロナ一色ですね。

あまり言えることはありませんが、最低限のウイルス対策をしたほうがいいですね。

あと!。情報を見極めることは大切です。 情報リテラシー、覚えていますか?


簡単に言うなら、
追加、検索、置換、複製、などなど.
色々、ありますが。メジャーなものを解説します。

追加 [ + ]

文字列と文字列を連結させる
"Hello" + "world" // 結果 : Helloworld
文字列型の変数とを連結させる
let abc = "Cat";
let efg = "Dog";
console.log( abc + efg ); // 結果 : CatDog
組み合わせ
let value = 2;
let fruit = "りんご";

console.log( fruit + "は" + value + "個 持っているよ。" );
// 結果 : りんごは2個 持っているよ。

検索 [ indexOf ]

リンゴが何文字目にあるかを確認するとき
let str = "こんにちは!リンゴはお好きですか?";
var res = str.indexOf( "リンゴ" , 0 );
console.log( res );
実行結果 :

リンゴがなかった場合
let str = "こんにちは!メロンはお好きですか?";
var res = str.indexOf( "リンゴ" , 0 );
console.log( res );
実行結果 : ( 検索対象が無かったら必ず、-1 が返ってくるよ。)

引数 - indexOf

文字列型の変数(検索を実行させたい文字列).indexOf( 検索したい文字 [, 検索を開始する位置(数値)])
[]は無くてもいい記述だよ。
位置の指定をなくすと 検索する位置は 0 で固定になるよ。

他の記述

// 位置の指定を省いているよ。
let str = "こんにちは!リンゴはお好きですか?";
let res = str.indexOf( "リンゴ" );
    console.log( res ); // 結果 :6

// 文字列をそのまま対象にしているよ。(使う機会がないですが、原理が理解しやすくなると思います。)
let res = "こんにちは!みかんはお好きですか?".indexOf( "みかん" );
    console.log( res ); // 結果 :6


置換 [ replace ]

私は、パンダが好き。なぜなら、パンダはかわいい。
上記の文字列を、パンダからカエルに変える場合。
let str = "私は、パンダが好き。なぜなら、パンダはかわいい。";
let target = "パンダ"; // 置換する文字
let change = "カエル"; // 置換後の文字となる文字

let res = str.replace( target , change );
console.log( res );
実行結果: 
これでは、全て置換出来ていませんでした。

すべて置換する [正規表現]

正規表現を使えば全て対象にできるようなのです。
/対象/gを使って全て (gで) 対象にしています。
let str = "私は、パンダが好き。なぜなら、パンダはかわいい。";
let change = "カエル"; // 置換後の文字となる文字

let res = str.replace( /パンダ/g , change );
console.log( res );
実行結果:
やり方がおかしいのか分りませんが、文字列の中に正規表現を使うと、効力はないようです。
let str = "私は、パンダが好き。なぜなら、パンダはかわいい。";
let target = "/パンダ/g"; // 置換する文字
let change = "カエル"; // 置換後の文字となる文字

let res = str.replace( target , change );
console.log( res );
実行結果: (変わってない)

split と joinを使う

let str = "私は、パンダが好き。なぜなら、パンダはかわいい。";
        let target = "パンダ"; // 置換する文字
        let change = "カエル"; // 置換後の文字となる文字

        let split_txt = str.split(target); // 配列になる
        let join_txt = split_txt.join(change);

        console.log( join_txt );
split_txtの中身(そのまま出力):
最後の結果:


複製

とても単純です。
let a = "hello!"
let b = a; // 代入する

console.log ( b ); // 結果: hello!

split joinを関数にまとめたもの
function replaceAll(str ,target ,changed){
    return str.split(target).join(changed);
}

// 使用例

console.log( replaceAll("そのリンゴは、奇跡のリンゴ。" , "リンゴ" , "メロン") );
// 結果:そのメロンは、奇跡のメロン。

<<前 : 動画IDを入力してYoutubeの動画を表示する
>>次 : インターバルを駆使する

参考

特定の文字列を全て置換する[Javascript] - qiita.com
正規表現 - Wikipedia