2012-03-24 2 views
-1

가능한 중복 :
Using a string variable as regular expression자바 스크립트에서 정규 표현식?

나는 모든 영어 단어를 포함하는 VAR 있습니다. var에 저장된 특정 문자에 따라 단어를 필터링하기 위해 정규 exp를 사용하고 싶습니다.

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

나는 두 단어가 아닌 전체 단어를 찾을 필요가있다. – 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]); 
    }; 
}