2017-01-08 6 views
0

URLを含む文字列があります。たとえば、www.test.com/list/p12(pはページ番号に使用されるページ番号)などの/ p [num]を含みます。Javascript置換文字+数字正規表現

これはJavaScriptでページ番号なしでURLを取得する私の試みです:

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

しかし、それは何かを置き換えるものではありません。私はここで間違って何をしていますか?

JSFIDDLE:あなたは正規表現リテラル構文を使用している場合https://jsfiddle.net/t9p95p87/

+3

'.replace()'に直接渡される文字列リテラルで正規表現の構文を使用しているようです。代わりにregex literalを使用してください。 'url = url.replace(/ \/p \ d + /、 '')'あなたがその文字列を 'RegExp'コンストラクタに渡すと、あなたのやり方がうまくいきます。 'url = url.replace(new RegExp(" \\/p \\ d + ")、 '');' –

+1

そのURLが 'window.location'または' a.href'からのもので、あなたが '.pathname'プロパティを変更してそれを同じプロパティに割り当てることで、正規表現なしで処理することができます。 –

答えて

2

はあなたのコードは正常に動作します:

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

は私が何をあなたのコードで起こったことは/pの前に二重のバックスラッシュが解釈されて終わるれたことだと思いますリテラルのバックスラッシュと一致させたいと考えています。