1. Feel-Physics

    No comment

    Feel-Physics
Changes in body
Source | HTML | Preview

ハマったのでシェアします。

RegExpを使ってマッチさせるには以下のように書きます:

var re = new RegExp('Hello\\sworld!');

\s\Wといった正規表現を使う場合は、RegExpを使うとわかりにくくなってしまうので、個人的にはそういうときは以下のような書き方にしておいた方が良いと思います。

var re = /Hello\sworld!/;

追記追記1

mattnさんよりアドバイスいただきました。ありがとうございます:さんより以下のアドバイスをいただきました。ありがとうございます。

/Hello\sworld!/は正規表現リテラルなので\sをエスケープする必要はありません(見たまま解釈されます)。

/Hello\sworld!/

しかしRegExpr('Hello\sworld!')は文字列なのでRegExpに正しく\s(つまり\sの2文字)を渡すにはエスケープして\\sとする必要があります。

RegExpr('Hello\sworld!')

は文字列なのでRegExpに正しく\s(つまり\sの2文字)を渡すにはエスケープして\\sとする必要があります。

追記2

think49さんより以下のアドバイスをいただきました。ありがとうございます。

new RegExpは引数に変数を取れるのが利点です。
例えば、次のケースではnew RegExpを使わないと書けません。

var word = 'World!';
var reg = new RegExp('Hello\\s' + word);
console.log(reg.test('Hello World!')); // true

実用的には正規表現メタキャラクタのエスケープ処理が必要です


ブログやってます:Weed software