如果string包含正则表达式字符串,则验证

时间:2017-04-22 22:08:02

标签: php regex

我在下面的字符串由DOM Document提取:

$scripts = $doc->getElementsByTagName('script');
$script = $scripts->item($i); 
$string = $script->getAttribute('src');// Save the string 'jquery-3.2.0.min.js'

我有3种方法来检查这个字符串是否是一个jquery:

jquery(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1
/([\\d.]+)/jquery(?:\\.min)?\\.js\\;version:\\1
jquery.*\\.js

在这种情况下,如何使用这3个命令之一验证上述字符串?

2 个答案:

答案 0 :(得分:3)

您可以使用xpath:

轻松选择仅作为jquery lib链接的脚本标记
$xp = new DOMXPath($doc);
$nodeList = $xp->query('//script[.=""]/@src[contains(., "jquery")]');
foreach ($nodeList as $node) {
    echo $node->nodeValue, PHP_EOL;
}

demo

答案 1 :(得分:0)

使用preg_match

  

preg_match - 执行正则表达式匹配

if (preg_match("/jquery.*\.js/",$string)) {
    echo "Match found";
}

如果找到匹配,则会打印出Match found。 (我只使用了你的一个正则表达式字符串)

我还假设$string是您提取的内容,因为很难分辨。

Try it out