2011-01-12 26 views
0

Ich bin der schlimmste Typ auf regulären Ausdruck und jede Zeichenfolge Operation in JavaScript/jquery, können Sie bitte mit etwas helfen?Javascript, String-Operation, Regex oder etwas anderes

http://farm5.static.flickr.com/4040/5160997583_5ea677e4e1_s.jpg

ist dies eine URL-Struktur Beispiel in der Notwendigkeit von dieser URL für die Unterstützung

Dank zu erhalten!

+1

Sie müssen sich ein wenig mehr erklären: Wollen Sie die ersten 10 Zeichen des Dateinamens finden? Möchten Sie alle Zeichen des Dateinamens bis zu einem Unterstrich finden? Möchten Sie die Anfangsziffern des Dateinamens finden? –

Antwort

2

Unter der Annahme, die Struktur ist immer gleich und dass Sie alle Zeichen des Dateinamens mit dem ersten Auftreten eines Unterstreichungs bis zu finden, können Sie einfach tun:

var str = "http://farm5.static.flickr.com/4040/5160997583_5ea677e4e1_s.jpg"; 
var num = str.split("/"); 
num = num[num.length - 1].split("_")[0]; 
alert(num); 

str.split("/")[-1] bekommt 5160997583_5ea677e4e1_s.jpg und wir dann Teilen Sie diese Zeichenfolge auf _ und greifen Sie den ersten Teil dieser Zeichenfolge.

Alternativ können Sie tun:

var num = str.replace(/\/(\d+)_[^\/]+$/i, "$1"); 
+0

Sie können keine negativen Array-Indizes in JavaScript haben. – tillda

+0

@tillda - guter Punkt, zu viel Python. Vielen Dank! –

1

var code = url.match(/\/([0-9]+)_[^\/]*$/)[1];

(EDITED restriktiver zu sein)

+0

Sie Regex hat die Möglichkeit, vor dem Erreichen des Dateiteils übereinstimmen. Zum Beispiel wird in 'http: // farm5.static.flickr.com/4040_/5160997583_5ea677e4e1_s.jpg'' 4040' angezeigt. –

+0

Das ist wahr. Damit die Antwort perfekt ist, müsste die Frage die exakt mögliche Syntax der URL angeben. – tillda

0

Ein regex, die die Anfangsziffern des Dateinamens dieses wäre

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

und Sie verwenden es so

url = "http://farm5.static.flickr.com/4040/5160997583_5ea677e4e1_s.jpg"; 
matches = url.match(/\/(\d+)[^\/]+$/); 
alert(matches[1]); // here it is/
Verwandte Themen