javascript正则表达式:替换非youtube嵌入

时间:2011-12-09 19:25:45

标签: javascript regex youtube

我正在尝试编写一个简单的正则表达式,它将找到对象标签并忽略包含单词“youtube or”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

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

1 个答案:

答案 0 :(得分:0)

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

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

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