簡體   English   中英

准確計算PHP和Javascript中的鏈接數

[英]Accurately count number of links in PHP and Javascript

我有一個可以通過前端JS和服務器端PHP進行驗證的表單。 我需要的是一種可靠地計算HTML字符串中鏈接數的方法。 我能想到的最好方法是計算結束標記。 但是,僅搜索該標簽將不起作用,因為用戶可以通過添加空格( </a >來繞過驗證。

我對regex相當陌生,這是到目前為止我能想到的模式:

<[ \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字符串可能很長)? 我正在尋找最有效,最可靠的解決方案。

提前致謝。

因此,就像@sgroves所說的那樣, </a>並不是全部鏈接。 檢查href可能會更有趣。
另外,為什么不直接檢查開始標簽呢? 我嘗試搜索<a .... href>

您可以使用's'修飾符忽略換行符...

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM