2017-03-19 16 views
-1

文字列の特定の部分を置き換えるにはどうすればよいですか? YouTubeのURLでwatchを交換例えば文字列全体ではなく、文字列の特定の部分を置き換えるにはどうすればよいですか?

https://www.youtube.com/timetest_video?v=M34TO71SKGk 

timedtest_video

https://www.youtube.com/watch?v=M34TO71SKGk 

にのみ真ん中の鎖を変更します。

+1

新しいURLに更新し、現在のURLを取得した文字列を置換します。 – wOxxOm

+2

基本的には、['.replace()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace)の使用方法を尋ねています。 – Makyen

+1

'url = url.replace( '/ watch?'、 '/ timetest_video?');'のようなことができます。それはあなたが 'youtube.com'のURLに置き換えていることだけを確認する必要はないと仮定します。個人的には、正規表現を使用して、私が望む部分だけを置き換えることをより確実にしました。 url = url.replace(/ ^([^:] * :(?:\/\ /)?(?:[^ \ /] * \。)?youtube.com \ /) watch \?/、 '$ 1timetest_video?'); ' – Makyen

答えて

1

シンプル.replace()

あなたのような何かができる:

シンプル replace()あなたがする必要はありません想定して可能不正確交換

があると

let url = 'https://www.youtube.com/watch?v=M34TO71SKGk'; 
 
url = url.replace('/watch?','/timetest_video?'); 
 
console.log(url);

あなたがで交換するだけであることをより確かめてくださいURL。

上記の.replace()は、あなたが望まないものを変更する可能性があります。例えば、

https://www.example.com/foo/bar/watch?join=yes 

のようなURLが間違っ交換の

https://www.example.com/foo/bar/timetest_video?join=yes' 

console.log('Incorrectly replaced:'); 
 
let url = 'https://www.example.com/foo/bar/watch?join=yes'; 
 
url = url.replace('/watch?','/timetest_video?'); 
 
console.log(url);

に変更になるだろう、より正確

する regular expressionを使用して、

個人的には、正規表現を使用して、必要なURLと必要なURLの正確な場所で置き換えを行うことがより確実になりました。線に沿ってより多くの何か:

function replaceWatchInURL(url) { 
 
    return url.replace(/^([^:]*:(?:\/\/)?(?:[^\/]*\.)?youtube.com\/)watch\?/,'$1timetest_video?'); 
 
} 
 

 
console.log('Correct replacement:'); 
 
let url = 'https://www.youtube.com/watch?v=M34TO71SKGk'; 
 
url = replaceWatchInURL(url); 
 
console.log(url); 
 

 
console.log('Correctly not replaced:'); 
 
url = 'https://www.example.com/foo/bar/watch?join=yes'; 
 
url = replaceWatchInURL(url); 
 
console.log(url);

+0

私は、人々がダウン投票を説明することは、強制的な希望であることを知っていますが、ダウン投票の理由を知ることはうれしいでしょう。特に、用意されたスニペットを使用してコードをテストすることができます。 – Makyen

関連する問題