2017-01-08 5 views
0

Ich habe eine Zeichenfolge mit einer URL, die enthält/p [num], zum Beispiel www.test.com/list/p12 (p ist die Seitenzahl für die Seitenumbruch verwendet).Javascript ersetzen Brief + Nummer Regex

Dies ist mein Versuch, die URL ohne die Seitenzahl in Javascript zu bekommen:

url = url.replace("\\/p\\d+", ''); 

Allerdings ist es nichts zu ersetzen. Was mache ich hier falsch?

JSFIDDLE: https://jsfiddle.net/t9p95p87/

+3

Sie scheinen Regex-Syntax in einem Zeichenfolgenliteral zu verwenden, das direkt an '.replace()' übergeben wird. Verwenden Sie stattdessen regex literal. 'url = url.replace (/ \/p \ d + /, '')' Ihr Weg würde funktionieren, wenn Sie diese Zeichenfolge an den 'RegExp'-Konstruktor übergeben würden. 'url = url.replace (neue RegExp (" \\/p \\ d + ")," ");' –

+1

Wenn diese URL von 'window.location' oder' a.href' kommt und wenn der Teil Um zu entfernen, wird immer am Anfang sein, Sie könnten es ohne eine Regex behandeln, indem Sie die '.Patchname'-Eigenschaft ändern und sie derselben Eigenschaft zuweisen. –

Antwort

2

Wenn Sie regexp Literalsyntax Code verwenden, funktioniert gut:

url = url.replace(/\/p\d+/, ''); 

denke ich, was in Ihrem Code passiert ist, dass der doppelte Schrägstrich vor den /p wurde enden interpretiert als ein Wunsch, einen wörtlichen Backslash zu finden.