准确计算PHP和Javascript中的链接数

时间:2014-07-25 15:31:38

标签: javascript php jquery html regex

我有一个表单,我正在验证前端的JS和服务器端的PHP。我需要的是一种可靠地计算HTML字符串中链接数量的方法。我能想到的最好方法是计算结束标记。但是,只搜索此标记是行不通的,因为用户可以通过添加如下所示的空格来绕过验证:</a >

我对正则表达式相当新,这是我迄今为止能够提出的模式:

<[ \n\t]*\/[ \n\t]*a[ \n\t]*>

在Javascript中:

function link_count(s){
    return s.match(/<[ \n\t]*\/[ \n\t]*a[ \n\t]*>/g, s).length;
}

在PHP中:

function count_links($str){
    return preg_match_all('<[ \n\t]*/[ \n\t]*a[ \n\t]*>', $str, $matches);
}

这是最好的方法吗?它会影响我的表单的性能(html字符串可能会很长)?我正在寻找最有效和最可靠的解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

所以,就像@sgroves说的那样,</a>不是所有的链接。检查href可能会更有趣 另外,为什么不直接检查开口标签? 我尝试搜索<a .... href>

您可以使用&#39;&#39;修饰符忽略换行符......

/<\s*\ba\b.*?href/gs

http://regex101.com/r/bG8lN1/3