Ich will in der Lage sein, die Nutzernamen der Nutzer Facebook-Profile zu erfassen, und ich weiß, das ist super einfach zu tun, wenn die URL wie folgt aussieht:Wenn eine Zeichenfolge nach dem letzten Schrägstrich einer URL vorhanden ist, erfassen Sie den Wert; wenn nicht, erfassen den Wert vor dem letzten Schrägstrich (Javascript)
https://www.facebook.com/123456
Alles, was ich tun müssen, ist dies:
var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
// Result == '123456'
Aber wenn die URL wie folgt aussieht:
https://www.facebook.com/123456/
Das obige JS gibt eine leere Zeichenfolge zurück. Wie kann ich also:
- Der bekommen den Wert nach dem letzten Schrägstrich (/), es sei denn, der Wert leer ist
- Wenn der Wert leer ist, den Wert vor dem letzten Schrägstrich erhalten
Oh wow, das funktioniert erstaunlich gut. Kannst du erklären, was passiert? –
@LaurenEccles Geteilte Zeichenfolge bei '/' charcaters, wenn das letzte Zeichen in 'str' ist'/',' .split() 'setzt den letzten Index des resultierenden Arrays auf den leeren String' "'' welcher '.filter()' mit Parameter 'Boolean' entfernt aus dem gefilterten Array, als leere Zeichenfolge' "" gibt einen "falsey" -Wert zurück; oder "" "wird bei' .filter() 'als' falsch 'gleichgesetzt. Wenn das letzte Zeichen von 'str' nicht'/'ist, sollte der letzte Index ein Teil der Zeichenkette sein, der auf das letzte'/'Zeichen in der Zeichenkette folgt. '.pop()' gibt den letzten Index eines Arrays zurück und liefert dasselbe Ergebnis, wenn das letzte Zeichen in 'str''/'ist oder nicht'/'. – guest271314