Stringオブジェクトには、正規表現を使用するメソッドが4つある。
search()メソッド
search()メソッドに対して、検索する文字列の正規表現を引数に指定すると、
最初に見つけた文字列の先頭の文字列を示す番号を返す
見つからなかった場合は-1を返す
"Javascript".search(/script/i); //4が返す
replace()メソッド
検索、置換を行う
//大文字と小文字の使い方が統一されていなくても、
//すべて「JavaScript」に統一する
text.replace(/javascript/gi, "JavaScript");
//変数quoteを定義する
//引用符の間に任意の数の引用符以外の文字が含まれる
var quote = /"([^"]*)"/g;
//ストレート型の引用符をカール型の引用符に置き換える
//引用符で囲まれた部分($1に格納されている)はそのままにしておく
text.replace(quote, '$1');
match()メソッド
引数に正規表現を指定すると、一致した結果を格納した配列が返される
引数に正規表現以外を指定すると、
RegExp()コンストラクタに渡して正規表現に変換した上で比較が行われる
正規表現にgフラグが指定されていると、
一致したすべての文字列を含む配列を返す
"1 plus 2 equals 2".match(/\d+/g) //実行結果は["1", "2", "3"]
正規表現にgフラグがない場合は、
グローバル検索をせずに、最初に一致した文字列だけを返す。
ただし、グローバル検索を行わない場合でも、返されるのは配列
var url = /(\w):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my blog at http://www.example.com/~david";
var result = text.match(url);
if (result != null) {
var fullurl = result[0]; //「http://www.example.com/~david」
var protocol = result[1]; //「http」
var host = result[2]; //「www.example.com/」
va path = result[3]; //「~david」
}
split()メソッド
指定された引数を区切り文字として使用し、文字列をいくつかに分割する
"123,456,789".split(","); //「"123","456", "789"」
"1, 2, 3, 4, 5".split(/\s*,\s/); //「"1","2","3","4","5"」
参考書籍:
オライリー JavaScript 第6版