2016-06-01 21 views
4

Wie kann ich überprüfen, ob die Seite URL enthält ein Zeichen '#' plus einige zufällige ZiffernJavascript: indexOf mit Regular Expression

z.B. www.google.de/#1234

if(window.location.href.indexOf('#') > 0){ 
    alert('true'); 
} 

Does indexOf Unterstützung Reguläre Ausdrücke?

+0

Nein, tut es nicht. – HamZa

+4

Warum müssen Sie den Index davon wissen? Verwenden Sie einfach die '.match()' -Funktion, um zu testen, ob die Regexp übereinstimmt? – Barmar

+0

Kannst du nicht einfach testen, was sich in 'window.location.hash' befindet? – Barmar

Antwort

6

Verwenden String.prototype.search den Index einer Regex zu erhalten:

'https://example.com/#1234'.search(/#\d+$/); // 20 

Und RegExp.prototype.test wenn für boolean Kontrollen verwendet:

/#\d+$/.test('https://example.com/#1234'); // true 

Die Regex für diese Beispiele verwendet werden, sind /#\d+$/ die wörtliche # gefolgt übereinstimmen um 1 oder mehr Ziffern am Ende der Zeichenfolge.

Wie bereits in den Kommentaren heraus Sie nur location.hash wollen vielleicht überprüfen:

/^#\d+$/.test(location.hash); 

/^#\d+$/ einen Hash wird übereinstimmen, sonst 1 oder mehr Ziffern und nichts enthält.

+0

Vielen Dank für die detaillierte Erklärung. – typocoder