2010-12-29 9 views
0

Ich bin RegEx Analphabet. Tatsache ist, RegEx gibt mir Nesselsucht.Verwenden von JavaScript-RegEx zum Aufteilen und Bereinigen von HTML5-DB-Spaltennamen-Attributpaaren

Ich muss die folgende Zeichenfolge auf der ersten Platz teilen und beide Seiten des Ausgangs trimmen.

"id INTEGER PRIMARY KEY AUTOINCREMENT" <-- 2 spaces between "id" and "INTEGER" 

werden sollte

["id", "INTEGER PRIMARY KEY AUTOINCREMENT"] 

Kann eine der RegEx-Gurus helfen?

Aktualisierung nach Kais Antwort Es kann 1 bis n Leerzeichen zwischen dem Spaltennamen und dem Attribut geben.

Antwort

0

Sind es immer nur zwei Leerzeichen am Anfang? In diesem Fall können Sie zwei Räume teilen.

"id INTEGER PRIMARY KEY AUTOINCREMENT".split(" "); 

Edited Antwort nach aktualisiert Frage:

var str = "id INTEGER PRIMARY KEY AUTOINCREMENT", 

    // Regex, very specific to your string, case-sensitive 
    regex1 = /(id)\s+(INTEGER\sPRIMARY\sKEY\sAUTOINCREMENT)/, 

    // Regex, not specific to your string, but follows pattern 
    // and case-insensitive (/i). Same as zawhtut's response 
    regex2 = /(\w+)\s+(.+)/i, 

    results1 = str.match(regex1), 

    results2 = str.match(regex2); 


// Test (0th position is str, results start at 1) 
alert(results1[1]); // id 
alert(results1[2]); // INTEGER PRIMARY KEY AUTOINCREMENT 

alert(results2[1]); // id 
alert(results2[2]); // INTEGER PRIMARY KEY AUTOINCREMENT 
+0

Nein, es eine beliebige Anzahl von Räumen sein könnte oder nur einen. Deshalb möchte ich trimmen, nachdem der Spaltenname von den Attributen getrennt wurde. – DataZombies

+0

@DataZombies Falsch, es teilt sich nur nach zwei aufeinander folgenden Leerzeichen, so dass Sie '[ID, INTEGER PRIMARY KEY AUTOINCREMENT]' erhalten. Versuche es. :) – Kai

Verwandte Themen