2012-03-26 5 views
1

Ich habe Probleme, die Größe der URL bekomme ich mit dem regulären Ausdruck. Ich kann die „exp“ Inhalt drucken, aber wenn ich versuche, eine Warnung von exp.length machen es fehlschlägt:Zählen Größe der Zeichenfolge mit regulärem Ausdruck Javascript

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;    
var exp = text.match(pattern); 

alert(exp.length); 

Jede Idee? Danke.

+2

text.length ?? Was versuchst du zu machen? – jbabey

Antwort

0

Wenn, was Sie versuchen, ist die Länge des regexp Spielergebnis zu tun bekommen Sie würde das wie folgt tun:

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;    
var exp = text.match(pattern); 
if (exp) { 
    alert(exp[0].length); 
} 

.match() gibt entweder null (wenn keine Übereinstimmung gefunden wurde) oder ein Array. In diesem Array wäre exp [0] das gesamte gefundene Match. Nachfolgende Indizes im Array enthalten alle Unterausdrücke, die Sie gefunden haben (in der Übereinstimmungszeichenfolge mit Klammern gekennzeichnet).

+0

Danke, es funktioniert super !! – Alvaro

0

String.match ein Array zurückgibt, kein String, versuchen Sie wahrscheinlich so etwas wie dies zu tun:

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;    
var exp = text.match(pattern); 

alert(exp.join('').length); // alert a string, not an array 
Verwandte Themen