我有一个表单,我正在验证前端的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字符串可能会很长)?我正在寻找最有效和最可靠的解决方案。
提前致谢。
答案 0 :(得分:0)
所以,就像@sgroves说的那样,</a>
不是所有的链接。检查href
可能会更有趣
另外,为什么不直接检查开口标签?
我尝试搜索<a .... href>
您可以使用&#39;&#39;修饰符忽略换行符......
/<\s*\ba\b.*?href/gs