2012-09-24 102 views
0

有一些鏈接,有些是在JavaScript代碼。如何預先匹配那裏的urls? (網址可能是由.shtml.html/.jsp結束,所以我覺得正則表達式,它們在單引號,但沒有什麼回報。)php preg匹配一些網址在javascript

$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); 
} 

回答

1

更改,如果條件:

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

'javascript'$sitelink之內的位置是0這是不正確的!

+0

這將始終產生TRUE;因爲'strpos()'不會返回'-1' –

+0

@Jack:你是對的。更正 – Toto

+0

仍然認爲在字符串的開頭匹配''javascript''會更好,但是由於OP從未明確聲明過這種行爲,我會將DV –

1

匹配字符串開頭處的'javascript'的邏輯錯誤;它應該是:

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

正則表達式也可能是一個更好一點:

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