達成しようとしていることがあります。
AJAX/で構築された配列を取得したいと思いますxml
。
array[/word0/, /word1/, /word2/]
.match()
これを:で使用できる形式に変換します。
result = string.match(array)
forループを使用して、配列をステップスルーしてみstring.match(array[i])
ましたが、役に立ちませんでした。
これを行う簡単な方法はありますか?
達成しようとしていることがあります。
AJAX/で構築された配列を取得したいと思いますxml
。
array[/word0/, /word1/, /word2/]
.match()
これを:で使用できる形式に変換します。
result = string.match(array)
forループを使用して、配列をステップスルーしてみstring.match(array[i])
ましたが、役に立ちませんでした。
これを行う簡単な方法はありますか?
あなたのアプローチは大丈夫でした。これが私の実装です:
var regexes = [/^def/, /^abc/],
testString = 'abcdef',
numRegexes = regexes.length;
for(var x=0;x<numRegexes;x++) {
alert(regexes[x].test(testString));
}
編集:構文に問題がある可能性があります。以下は無効な構文です。
array[/word0/, /word1/, /word2/]
このような何かがそれを修正します:
var regexps = [/word0/, /word1/, /word2/];
元の答え:
JavascriptRegExp
はすでにこれを行っています。あなたが探しています:
var regexp = /word0|word1|word2/;
一致のリストが正しい形式で戻ってくると仮定すると、次のようにこれを実現できます。
var words = ["word0", "word1", "word2"];
var regexp = new Regexp(words.join("|"));
str.match(regexp);
アレイを初期化するには、
var array = [/word0/, /word1/, /word2/];
その後、あなたは使用することができます
str.match(array[i])
問題が「AJAX/xml」での送信である場合は、クライアント側で正規表現を作成する必要があります。new RegExp(somestring)
たとえばsomestring
、次のようになります。XMLに正規表現リテラル"word0"
を埋め込むことはできません。