単語内の特定の文字シーケンスの出現を見つけるための汎用モデルを作成しようとしていますが、特定の入力の出現を見つけることができました..しかし、この式を一般化したいと思います..ここでは、"の出現のみを計算しますin" 単語の中に..正規表現を一般化して、提供する入力の発生を比較できるようにしたいのですが、これはjavascriptで正規表現を使用して行うことができますか?
サンプルのフィドルを追加しますhttp://jsfiddle.net/2BAFG/
単語内の特定の文字シーケンスの出現を見つけるための汎用モデルを作成しようとしていますが、特定の入力の出現を見つけることができました..しかし、この式を一般化したいと思います..ここでは、"の出現のみを計算しますin" 単語の中に..正規表現を一般化して、提供する入力の発生を比較できるようにしたいのですが、これはjavascriptで正規表現を使用して行うことができますか?
サンプルのフィドルを追加しますhttp://jsfiddle.net/2BAFG/
私はそう信じています、はい。
あなたのフィドルでは、あなたは持っています
var matches = data.filter(function(item) { return /in/i.test(item) });
に変更してみてください
var inputToMatch = "in";
var patt=new RegExp(inputToMatch,"i");
var matches = data.filter(function(item) { return patt.test(item) });
確かに、任意の文字列から正規表現を構築し、new RegExp()
代わりにそれを使用できます。
したがって、代わりに:
var matches = data.filter(function(item) { return /in/i.test(item) });
以下を使用できます。
var re = new RegExp("in", "i");
var matches = data.filter(function(item) { return re.test(item) });
"in"
動的に生成されたものを含め、好きな正規表現文字列をどこに置くことができますか。
これを試して
var matches = function(m) {
var re = new RegExp(m, "i");
return data.filter(function(item) { return re.test(item) });
};
document.write(matches('in'));
フィドルの例: http://jsfiddle.net/2BAFG/8/
検索する部分文字列が関数の引数として渡されるようになりました