0

次の正規表現を使用して、次の可能性のある URL を検証しています。

@"http[s]?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";

ドメインwww.abc.com (検証します) subdomain.abc.com (検証します)

IP アドレス 192.168.0.1 (検証) 182.494.29.23 (検証)

無効な IP アドレスを制限したい 192.192 (上記の式も同様に検証します) 192.192.192 (上記の式も同様に検証します)

これらの無効なIPアドレスを制限するために、上記の式に追加する必要がある変更を教えてください。

前もって感謝します。

4

2 に答える 2

1

この正規表現を試すことができます:

/^http(s?)://((\w+\.)?\w+\.\w+|((2[0-5]{2}|1[0-9]{2}|[0-9]{1,2})\.){3}(2[0-5]{2}|1[0-9]{2}|[0-9]{1,2}))(/)?$/gm

少し長いですが、abc.domain.com、domain.com、および有効な IP アドレスの両方で機能します。ここでテストできます。

(\w+\.)?\w+\.\w+これは、スペースを含まず、1 つまたは 2 つのドットを含む任意のテキストに一致する「テキスト」部分と、ドットで((2[0-5]{2}|1[0-9]{2}|[0-9]{1,2})\.){3}(2[0-5]{2}|1[0-9]{2}|[0-9]{1,2})区切られた 0 から 255 までの 4 つの数字を許可する数値部分に分割されます。

必要に応じて、最後にスラッシュを付けることができます。

単一の文字 (abc など) で構成されるドメインを許可するつもりはないが、少なくとも www.bit.ly のように (つまり、1 文字以上のフリー プレフィックス、3 文字以上の「本文」) 、および 2 つ以上のサフィックス)、テキスト部分を次のように変更できます。

(\w+\.)?\w{3,}\.\w{2,}

参照:

http://RegExr.com?2ri07 (IP に一致する正規表現)

于 2012-09-26T12:32:18.677 に答える