somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Javascript】正規表現を変数を用いて指定する

Javascript正規表現に変数を組み合わせて使いたい場合についてのメモです。

べた書きの場合

文字列「abcd」に、文字列「bc」が含まれていることを確かめる方法は以下のとおりです。

console.log('abcd'.match(/bc/));

結果は以下のとおりです。

["bc"]

0: "bc"
index: 1
input": abcd"

配列で返ってきます。indexには、マッチした場所があり、inputには元になった文字列が格納されています。マッチしなかった場合、nullになります。

変数の場合

文字列「abcd」に、任意の文字列を格納した変数が含まれていることを確かめる方法は以下のとおりです。

var pattern = 'ac';

// 下記では実行できない
// console.log('abcd'.match(/pattern/));
// console.log('abcd'.match('/' + pattern + '/'));

console.log('abcd'.match(new RegExp(pattern)));

Javascriptには、正規表現を表すオブジェクトが存在します。生成時にパターンを渡します。