2012-03-24 11 views
-1

可能性の重複:
Using a string variable as regular expressionJavaScriptの正規表現ですか?

私はすべての英語の単語が含まれているVARを持っています。 varに格納されている特定の文字に基づいて単語をフィルタリングするために、正規表現を使用したいと思います。

var letter1 = "a"; 
    var letter2 = "b"; 
var words= "aardvark aardwolf aaron aback abacus abaft abalone abandon abandoned abandonment abandons abase abased abasement abash abashed abate abated abatement abates abattoir"; 

私はすべての手紙を持っている言葉「a」および「b」、それが動作していない見つけるために、これを試してみました:

document.writeln(words.match(/letter1 +/ + letter2 +/g)); 
+2

あなたの意図は明確ではありません。 _正確に何をしたいですか? 'letter1'と' letter2'を同時に含むすべての単語は? –

+2

1.期待値2.実際の結果3.コード –

+0

'「 –

答えて

3

このパターンはそれを行う必要があります。

/\S*[ab]\S*/g 

ので

var pattern = new RegExp('\S*['+letter1+'|'+letter2+']\S*','g'); 
var matches = words.match(pattern); 
document.writeln(matches); 
+0

私は2つの文字だけでなく、単語全体を見つける必要があります – user1200640

+0

は答えを更新しました – Joseph

0
>>> "acadfb".match(/a.*b|b.*a/) 
["acadfb"] 
>>> "basdfc".match(/a.*b|b.*a/) 
["ba"] 
>>> "asdfbasdfcvb".match(/a.*b|b.*a/) 
["asdfbasdfcvb"] 
>>> "cadsfg".match(/a.*b|b.*a/) 


var myStringArray = ["Hello","World","asdfsadf","asdbc","cdjfieab"]; 
for (var i = 0; i < myStringArray.length; i++) { 
    if(myStringArray[i].match(/a.*b|b.*a/)){ 
    console.log(myStringArray[i]); 
    }; 
}