2016-09-14 23 views
0

文字列から最後の番号を交換してください:私は次のような構造を持つ文字列のURLを持っている

URL /受信トレイ/ G/{PAGE_NUMBER}

私は{page_number}を交換する必要がある状況にいます新しい価値をもってだから私は何とかurl/inbox/gを検索し、それをurl/inbox/g/{new_value}と置き換える必要があります。

使用方法replace()これを行うには?

+0

は '{page_number} 'のリテラル文字列{{page_number}'ですか、それとも実際の数字ですか?また、あなたが 'url/inbox/g'を検索する必要があるとしたら、どこを探していますか?あなたがURLのすべての言及を見つけてそれらを置き換える必要があるより大きいテキストがあるか、それとも入力として得られるURLそのものですか? – vlaz

+0

@vlaz実際の数値です。検索によって、私は 'replace'関数の最初のパラメータを意味します。ありがとうございます –

+0

RegExを考えましたか? –

答えて

1

は、文字列の最後の部分である、あなたはlastIndexOfsliceを使用して、非正規表現のソリューションを使用することがあります。

<script> 
    url = 'url/inbox/g/44'; 
    replaceNumStr = 'Dummy'; 
    newVal = url.slice(0,url.lastIndexOf('/')+1); 
    alert(newVal+replaceNumStr); 
</script> 

チェックアウトthis demo

+1

私はすべての答えから学んだが、私はこれを使用した。ありがとう –

1
var url = "url/inbox/g/4321" 
var your_number = 1234 
url = url.replace(/\d+$/, your_number) 
+1

{page_number}は毎回変わる番号になるので、 'replace'関数呼び出しにハードコードすることはできません – Pabs123

+2

' page_number'の値がサーブ側にレンダリングされます。それを支配する。それは1桁以上で、 –

+0

とすることができます。私の悪い。その正規表現は、私が更新した答えで探しているものでなければなりません – larz

1

は次のように声明を置き換える使用します。私はurlが動的にアクセスされたと仮定しています

var newVal = 'anything', 
    pattern = "/url\/inbox\/g\/\d+$/", 
    reg  = new RegExp(pattern, "i"); 
    repURL = url.replace(reg, "url/inbox/g/" + newVal); 

を。

+0

ありがとう、私はあなたのRegExpとフィードバックを使用しようとします –

1

私は次の正規表現を使用します:/\/\d*$/mや交換をして行うことができる:nは新しい価値

正規表現がが一致するすべてのものを見つけると言うにある

str.replace(/\/\d*$/m, "/" + n) 

「/」を0桁以上の数字が続き、文字列はで終了します。 Reference

+0

ありがとう、私はあなたのRegExpとフィードバックを使用しようとします –

1

2つの可能性があり、RegExpを使用していません。数に

const url = 'url/inbox/g/{page_number}'; 
 
const parts = url.split('/', 3); 
 
const new_number = '{new_page_number}'; 
 
parts.push(new_number); 
 
const new_url1 = parts.join('/'); 
 
console.log(new_url1);

const url = 'url/inbox/g/{page_number}'; 
 
const new_number = '{new_page_number}'; 
 
const new_url2 = `${url.slice(0, url.lastIndexOf('/'))}/${new_number}`; 
 
console.log(new_url2);

+0

ありがとうございましたこの有益な答え –

関連する問題