【问题标题】:javascript regex: replacing non youtube embedsjavascript regex:替换非 youtube 嵌入
【发布时间】:2011-12-09 19:25:45
【问题描述】:

我正在尝试编写一个简单的正则表达式,它将定位对象标签并忽略任何包含“youtube 或”youtu.be”字样的匹配项。

我试过了

<object .*?>.+?(?=youtube|youtu\.be).+?<\/object>

它成功地找到了包含这些单词的对象标签,但反过来不起作用,而是只返回所有对象匹配项。

<object .*?>.+?(?!youtube|youtu\.be).+?<\/object>

知道我在这里缺少什么吗?

编辑: 它必须查看类似于以下内容的来源:

fdgfdgfdg
<object width="560" height="315">
    <param name="movie" value="http://www.youtube.com/v/-F_ke3rxopc?version=3&amp;hl=en_US">
    </param>
    <param name="allowFullScreen" value="true">
    </param>
    <param name="allowscriptaccess" value="always">
    </param>
    <embed src="http://www.youtube.com/v/-F_ke3rxopc?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true">
    </embed>
</object>
fdgfdgdg
<object width="400" height="300">
    <param name="allowfullscreen" value="true" />
    <param name="allowscriptaccess" value="always" />
    <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=31589401&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />
    <embed src="http://vimeo.com/moogaloop.swf?clip_id=31589401&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300">
    </embed>
</object>
fdgdgg

然后挑选出不包含单词的对象块,以便我可以对它们进行替换。

【问题讨论】:

  • 在选择解决方案时,请记住非 youtube 嵌入的 URL 可以轻松包含 &amp;youtube=false 或任何数量的获取字符串 'youtube' 的方法。

标签: javascript regex youtube


【解决方案1】:

一个有效但不完美的正则表达式是:

<object.*>.*(youtube|youtu\.be).*<\/object>

顺便说一句。 http://www.rubular.com/ 是一个检查正则表达式的好网站

【讨论】:

    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多