m{ (?:ldap|http)s?:// # Scheme
(?:(?!.*\d[/?:]) [a-z0-9\-._~%]+ | # IPv4 host (forbid ending with digit)
# IP (yep, I've copied this regexp)
(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])
\[[a-z0-9\-._~%!$&'()*+,;=:]+\]) # or IPv6 host
(?::\d+)? # Port
(?:
[/?] # Slash or question mark
[-A-Z0-9+&@#/%?=~_|$!:,.;]* # URL itself
)? # Technically, trailing/is required in URLs, but many browser implementations ignore it when accepting those
}ix
この正規表現は、/ix
で動作するはずです。 JSには/x
修飾語は含まれていないので、私はそれを除いてバージョンを含めるつもりです。文字の多くは%
マークを使用してエスケープせずにHTTP URLで許可されていることを
は
/(?:ldap|http)s?:\/\/(?:(?!.*\d[\/?:])[a-z0-9\-._~%]+|(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\[[a-z0-9\-._~%!$&'()*+,;=:]+\])(?::\d+)?(?:[\/?][\-A-Z0-9+&@#\/%?=~_|$!:,.;]*)?/i
注意。おそらく、URLに許可されている文字が含まれているため、URLが通過しないようにすることは望ましくありません。*
:)。
'ldap://192.442.242.244:389'は有効なIPではありません。 – xfix