2012-04-11 16 views
3

Ich bin neu in Reguläre Ausdrücke und kann nicht scheinen, um herauszufinden, entfernt, wie ich dieses Problem zu lösen haben:Reguläre Ausdrücke, die nur erste „/“

Ich brauche ein regulärer Ausdrücke, dass „erlaubt“ nur numbers, letters und /. Ich schrieb dies:

/[^a-zA-Z0-9/]/g

Ich denke, es ist möglich, die erste / abzustreifen, aber nicht wissen, wie.

so #/register/step1 wird register/step1

Wer weiß, wie ich dieses Ergebnis zu bekommen?

Dank!

+3

Haben Sie versucht, anstatt Strippen 'G'? – alf

Antwort

2

Sie eine nicht-globale Spiel verwenden können, wenn das Muster im String angrenzt:

var rx=/(([a-zA-Z0-9]+\/*)+)/; 

var s='#/register/step1'; 

var s1=(s.match(rx) || [])[0]; 


alert(s1)>>> returned value: (String) "register/step1" 
+0

danke! klappt wunderbar! – Ronald

0

edit: Ich weiß nicht, warum ich das nicht zuerst vorgeschlagen habe, aber wenn Sie einfach das Muster erzwingen anstatt es zu ersetzen, könnten Sie einfach diesen Schrägstrich ersetzen (wenn es existiert), bevor Sie das Muster mit strpos überprüfen(), substr() oder etwas Ähnliches. Wenn Sie ein preg_replace() verwenden bereits, dann sollten Sie sich die Beispiele auf die Funktion docs aussehen, sie sind durchaus relevant

0
"/register/step1".match(/[a-zA-Z0-9][a-zA-Z0-9/]*/); // ["register/step1"] 

\ w entspricht [^ A-Za-z0-9_], so:

"/register/step1".match(/\w[\w/]*/); // ["register/step1"]