簡體   English   中英

如何創建自定義有效 Url 正則表達式

[英]How to create custom valid Url Regex

我正在嘗試為具有以下條件的 URL 第一次創建正則表達式:

  1. 以或不以 www 開頭
  2. 不要以 http:// 或 https:// 開頭
  3. 允許的特殊字符有:連字符 (-) 和點 (.)
  4. 以 TLD 結尾,例如:.com、.io、.co.in 等。

一些示例供參考:

有效的:

xyz.com
xyz-px.com
www.xyz.com
abc.xyz.px.io
www.abc.xyz.px.io

無效的:

xyz-.com
xy_pm.com
http://xyz.io
https://xyz.io
http://www.pm.xyz
xy@pzzzz.com
xyz.io$#
www.xy
xyz.io-

我創建了一個正則表達式

/(^(??https|http):.\/\/(www\?.)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\,[^\s]{2,})/gi

但它沒有按預期工作。

你可能會使用

^[^\W_]+(?:[-.][^\W_]+)*\.(?:io|com)$

模式匹配:

  • ^字符串開頭
  • [^\W_]+匹配 1+ 個不帶_的單詞字符
  • (?:[-.][^\W_]+)*可選地重復匹配. -和 1+ 個不帶_的字符
  • \. 匹配文字點
  • (?:io|com)匹配任何選項
  • $字符串結尾

正則表達式演示

修改后的正則表達式是

/^(?!(https|http):\/\/)(?:www\.)?[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9](?:.[^\s\W]{2,})+$/gi

https://regex101.com/r/aNy8St/1

您可以使用

^(?!(http|https):\/\/)(?:www\.)?(?:(?:[a-zA-Z0-9])(?:[-\.][a-zA-Z0-9])?)+(?:\.[a-zA-Z0-9]+)$

演示 - 正則表達式

流程圖是: 在此處輸入圖像描述

暫無
暫無

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

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