0

達成しようとしていることがあります。

AJAX/で構築された配列を取得したいと思いますxml

array[/word0/, /word1/, /word2/]

.match()これを:で使用できる形式に変換します。

result = string.match(array)

forループを使用して、配列をステップスルーしてみstring.match(array[i])ましたが、役に立ちませんでした。

これを行う簡単な方法はありますか?

4

3 に答える 3

1

http://jsfiddle.net/KALPh/

あなたのアプローチは大丈夫でした。これが私の実装です:

var regexes = [/^def/, /^abc/],
    testString = 'abcdef',
    numRegexes = regexes.length;

for(var x=0;x<numRegexes;x++) {
    alert(regexes[x].test(testString));
}
于 2013-03-15T22:49:27.777 に答える
1

編集:構文に問題がある可能性があります。以下は無効な構文です。

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);
于 2013-03-15T22:49:29.710 に答える
0

アレイを初期化するには、

var array = [/word0/, /word1/, /word2/];

その後、あなたは使用することができます

str.match(array[i])

問題が「AJAX/xml」での送信である場合は、クライアント側で正規表現を作成する必要があります。new RegExp(somestring)たとえばsomestring、次のようになります。XMLに正規表現リテラル"word0"を埋め込むことはできません。

于 2013-03-15T22:47:43.883 に答える