2012-04-07 12 views
0

Ich bin immer noch neu auf Regex (ich sollte lernen), ich brauche nur JS Regex String und Nummer aus einem Text wie folgt zu extrahieren: [number][string].JavaScript Regex zum Extrahieren von Text und Nummer

(/^(\d+).(\s+)/?) 

Irgendwelche Hilfe bitte?

+0

Können Sie zeigen einige 'Text' Sie extrahieren müssen? – Engineer

+0

einige Beispiele 123123K, 333D. – albanx

Antwort

2

sind Ich glaube, Sie suchen nach '/\d+[a-z]+/gi':

var x = "123123K, 333D".match(/\d+[a-z]+/gi); 
console.log(x)​; //["123123K", "333D"] 

UPDATE: x ist ein Array. Sie können über sie iterieren und extrahieren Nummer und Text:

xitem.match(/\d+/)[0]  //number 
xitem.match(/[a-z]+/i)[0] //text 

PS: Über \s:

Spiele ein Leerzeichen, die in ASCII sind Tabulator, Zeilenvorschub, Formularvorschub, Wagenrücklauf, und Raum; passt in Unicode auch Leerzeichen ohne Unterbrechung, nächste Zeile und die Felder mit variabler Breite (unter andere).

http://en.wikipedia.org/wiki/Regular_expression#Examples

+0

Sorry Ingenieur, war mir nicht klar: zum Beispiel, wenn ich 123123D habe ich 123123 extrahieren wollen, und D – albanx

+0

@albanx Ich habe meine Antwort aktualisiert, überprüfen Sie es. – Engineer

+0

Dieser aktualisierte Teil mit zwei Regexes wird auch Strings wie "D123" und "1D1D1" entsprechen ... macht mehr Sinn die beiden interessanten Teile zu erfassen: 'console.log (" 123123K ".match (/ (\ d +) ([ az] +)/gi)); '. – DCoder

0

Wenn die eckigen Klammern in der Linie sind auch dann wie folgt vor:

/^\[(\d+)\]\[(\s+)\]$/ 

Wenn sie nicht

/^(\d+)(\s+)$/ 
+0

die sind nicht, es war nur zum Beispiel danke – albanx

+0

Ich versuche dies aber x Ergebnisse null: var x = "123123M" .match (/^(\ d +) (\ s +) $ /); \t \t console.log (x); – albanx

+0

'\ s' wird verwendet, um Whitespace zu entsprechen. "123123M" hat kein Leerzeichen. – DCoder

Verwandte Themen