【发布时间】:2018-03-29 14:41:49
【问题描述】:
我有一个内容(字符串),在某些部分包含完整的 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
【问题讨论】:
-
content.replace("https://youtu.be/", "")怎么样 -
ctwheels ,你回答了。这是一个贪婪的正则表达式。谢谢。
标签: javascript regex