2016-06-03 9 views
0

Hier auf eine Zeichenfolge, die eine endliche Menge von Array-Elementen entsprechen ist, was ich habe kommen mit:Der Versuch, über einen regulären Ausdruck in Javascript

function isValid(str){ 
    var letters = ['a','b','c','d','e','f','g','h','i','j','Z','N','L','Q','R']; 
    var parsedStr= str.trim().split(/\s+/); //returns array of each phrase seperated by a space, ex: ['Za', 'Nj'] 
    if((new RegExp('\\b' + parsedStr.join('\\b|\\b') + '\\b')).test(str)) { 
     console.log('match'); 
    } 
} 

aber ich glaube nicht, dass ich das Recht eingerichtet haben. Idealerweise möchte ich, dass die Zeichenfolge durch Leerzeichen analysiert und in ein Array abgespielt wird (was ich bereits getan habe), und dann über Regex prüfen, ob jeder Buchstabe in der analysierten Zeichenfolge mit der CONST der akzeptierten Buchstaben übereinstimmt.

Zum Beispiel

isValid("Za Zy") => kein Spiel, weil y in der CONST der zulässigen Zeichen

isValid("Za Qf") => Spiel, weil jeder Buchstabe in diesem Ausdruck keine gültigen Zeichen in der CONST Array von zu finden ist Briefe.

Ich weiß, ich brauche eine Schleife irgendwo zu übernehmen, aber nicht sicher, wie:/

Antwort

1

regex erzeugen, die Elemente Kombination aus weißen Raum und Array entspricht

function isValid(str) { 
 
    var letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'Z', 'N', 'L', 'Q', 'R']; 
 
    if ((new RegExp('^[\\s' + letters.join('') + ']+$')).test(str)) { 
 
    console.log('match ' + str); 
 
    } else { 
 
    console.log('not match ' + str); 
 
    } 
 
} 
 

 
isValid("Za Zy") 
 
isValid("Za Qf")

+0

ok danke ich meinen rexeg dachte war aus. Ich muss an diesem Aspekt meiner Kodierung mehr arbeiten:/Ich habe in 5 Min. Upvote gemacht. – cristodagama

Verwandte Themen