2012-03-24 25 views
-1

Mögliche Duplizieren:
Using a string variable as regular expressionregulärer Ausdruck in Javascript?

Ich habe eine var, die alle englischen Wörter enthält. Ich möchte reguläre exp verwenden, um die Wörter nach bestimmten Buchstaben zu filtern, die in einer Var gespeichert sind.

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"; 

Ich versuchte dies, um alle Wörter zu finden, die den Buchstaben „a“ und „b“, aber es funktioniert nicht:

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

Ihre Absicht ist nicht ganz klar. Was _exactly_ willst du bekommen? Alle Wörter, die 'Buchstabe1' und' Buchstabe2' gleichzeitig enthalten? –

+2

1. Erwartetes Ergebnis, 2. Tatsächliches Ergebnis, 3. Code –

+0

' ' –

Antwort

3

dieses Muster sollte es tun:

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

und so

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

Ich muss das ganze Wort finden nicht nur die beiden Buchstaben – user1200640

+0

aktualisiert die Antwort – 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]); 
    }; 
}