php preg在javascript中匹配一些网址

时间:2012-09-24 08:28:27

标签: php regex preg-match

有一些链接,有些是javascript代码。如何preg匹配那里的网址? (网址可能会以.shtml.html/.jsp结尾,所以我认为用单引号将它们拼凑起来,但没有任何回报。)

$sitelink = "javascript:pre('http://www.domain.com/cotagory/articles/2012/09/23/notice.shtml',%20%,500)";
//$sitelink = "javascript:box('http://www.domain.com/cotagory/articles/2012/09/23/sports/',%18%,500)";
if(strpos($sitelink,'javascript')===true){
    preg_match_all("@'(.*)'@i",$sitelink,$matches);
    var_dump($matches);
}

2 个答案:

答案 0 :(得分:1)

将if条件更改为:

if(strpos($sitelink,'javascript') !== false){

'javascript' $sitelink0的位置是{{1}},这是不正确的!

答案 1 :(得分:1)

在字符串开头匹配'javascript'的逻辑是错误的;它应该是:

strpos($sitelink, 'javascript') === 0

正则表达式也可以更好一些:

preg_match("@'([^']*)'@", $sitelink, $matches);