我在Rad Software正则表达式设计器中使用了以下正则表达式。
param\s+name\s*=\s*"movie"\s+value=\s*"(?<target>.*?)"
现在我想知道如何在JavaScript中使用它。它继续抱怨“目标”部分。我正在尝试验证并从youtube嵌入代码获取网址。
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/ueZP6ifzqMY&hl=sv_SE&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ueZP6ifzqMY&hl=sv_SE&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>
我怎么能让这个正则表达式使用我的javascript?
答案 0 :(得分:3)
Javascript没有命名捕获。使用
param\s+name\s*=\s*"movie"\s+value=\s*"(.*?)"
答案 1 :(得分:3)
如果您的网站中已经有像jQuery这样的JS框架,我建议使用它而不是正则表达式:
var movieUrl = $(your_html).find("object param[name=movie]").attr("value");
// "http://www.youtube.com/v/ueZP6ifzqMY&hl=sv_SE&fs=1&rel=0"
有很多方法可以使用纯DOM JavaScript(如果你没有框架)做类似的事情。它们导致代码比正则表达式略多,但更容易维护,不太可能失败。