検索と置換[javascript]
シンプルな文字列検索を行う時は、indexOfメソッドを使用します。検索文字列が見つかれば、その先頭の文字インデックスを、見つからなければ -1 を返します。また、lastIndexOfメソッドを使うと、文字列の末尾から検索することができます。いずれも、第二引数に検索を開始したい位置の文字 インデックスを指定することができます。省略時は文字列の先頭(indexOf使用時)または末尾(lastIndexOf使用時)から検索を開始しま す。
str.indexOf(key[, start]) : 文字列の検索(左から右へ)
str.lastIndexOf(key[, start]) : 文字列の検索(右から左へ)
(str : Stringオブジェクト, key : 検索文字列, start : 開始位置)
searchメソッドを使用すると、文字列だけでなく、正規表現を利用することができます。このメソッドは、見つかった時は先頭の文字インデックスを、 見つからなかった時は -1を返します。また、matchメソッドも正規表現を使用することができます。見つかれば、最初にマッチした文字列を、見つからない時は nullを返します。正規表現については文字列のチェックのページを参照してください。
str.search(regex) : 文字列の位置の確認
str.match(regex) : 文字列の確認
(str : Stringオブジェクト, regex : 確認する文字列または正規表現)
文字列の置換は、replaceメソッドで行います。第一引数に検索文字列を、第二引数に置き換える文字列を指定して使用します。検索文字列のところは 正規表現を使用することも可能です。戻り値は、置換後の文字列となります。元の文字列(検索対象の文字列)に変化はありません。
str.replace(regex, word) : 文字列の置換
(str : Stringオブジェクト, regex : 検索する文字列または正規表現, word : 置換文字列)
var s = "JavaScript Programming Sample."; var n = s.indexOf("Programming"); document.write(n, "<br>"); // = 11 n = s.lastIndexOf("Programming"); document.write(n, "<br>"); // = 11 n = s.indexOf("Programming", 3); document.write(n, "<br>"); // = 11 n = s.lastIndexOf("Programming", 3); document.write(n, "<br>"); // = -1 n = s.search("Programming"); document.write(n, "<br>"); // = 11 var m = s.match(/Programming/); document.write(m, "<br>"); // "Programming" var v = s.replace("JavaScript", "VisualBasic"); document.write(v, "<br>"); // "VisualBasic Programming Sample."