簡體   English   中英

php正則表達式,URL驗證,域名后面的點是否有效?

[英]Php regular expression, url validation, following dots in domain name is valid?

我在驗證組2((子)域和擴展名)時遇到問題。

我的正則表達式:/ /^(http:[\\/]{2})([\\w\\d\\-\\_\\.]+)(\\/(?:[\\/\\w\\W]+)?)?$/ :[ /^(http:[\\/]{2})([\\w\\d\\-\\_\\.]+)(\\/(?:[\\/\\w\\W]+)?)?$/ :[ /^(http:[\\/]{2})([\\w\\d\\-\\_\\.]+)(\\/(?:[\\/\\w\\W]+)?)?$/

問題發布於: ([\\w\\d\\-\\_\\.]+)

問題: http://www.....google....com/東西有效,我嘗試做[\\w\\d\\-\\_][(?<!\\.)\\.(?!\\.)]+但是a行。

我如何才能做到,如果有的話. 后面還是一個. 在前面. 正則表達式將返回false。

https://regex101.com/r/fS9dG7/10

您可以使用否定的前瞻:

~^https?:/{2}(?!.*?\.\.)([\w\d.-]+)(/.*)?$~

正則演示

順便說一句,在PHP中,您還可以使用parse_url函數來解析URL。

(?!.*?\\.\\.)為負前瞻,將不允許2個點。

您可以使用此版本的正則表達式

^(http:[\/]{2})((?![^\/]*?\.{2}[^\/]*?)[\w\d\-\_\.]+)(\/(?:[\/\w]+)?)?$

問題是\\W (與同一字符類中的\\w一起)匹配所有內容,甚至換行。

暫無
暫無

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

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