我有一个内容(字符串),在某些部分包含youtube的完整网址,而在其他部分只包含视频ID。 我需要用视频ID替换全长的YouTube网址。 var" content"例如。
var content = '{GENERICO:type="youtube",id="DluFA_AUjV8"}{GENERICO:type="youtube",id="https://youtu.be/DluFA_AUjV8"}';
var myRegex = /{GENERICO:type="youtube",id=".*?(?:youtube\.com|youtu\.be)\/(?:embed\/|watch\?v\=)?([^\&\?\/\"]+).*?["&\?]}/gi;
content = content.replace(myRegex, '{GENERICO:type="youtube",id="$1"}' );
console.log(content);

我想要实现的结果(在示例中)是:
{GENERICO:type="youtube",id="DluFA_AUjV8"}{GENERICO:type="youtube",id="DluFA_AUjV8"}
我实际得到的是以下内容:
the result I want to achieve (in the example) is:
{GENERICO:type="youtube",id="DluFA_AUjV8"}
由于某种原因,它删除了内容中的一个字符串。 我无法弄清楚它是javascript问题还是正则表达式问题,或者我做错了什么。
这是jsfiddle
答案 0 :(得分:0)
使用content.replace(new RegExp('https://youtu.be/','g'), '')
进行全局替换。
var content = '{GENERICO:type="youtube",id="DluFA_AUjV8"}{GENERICO:type="youtube",id="https://youtu.be/DluFA_AUjV8"}';
console.log(content.replace(new RegExp('https://youtu.be/','g'), ''))