2

私のために働いた開発者は、ユーザーが URL を入力したときに有効な URL をチェックする正規表現を作成しました。IP アドレスを認識しないという事実を除けば、これまでのところ非常にうまく機能しています。

url = url.match(/(http\:\/\/)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\S*)?/)

正しい:

Given: http://www.mywebsite.com/index.cfm?do=something
Result: http://www.mywebsite.com/index.cfm?do=something

正しくない:

Given: http://64.200.10.50/index.cfm?do=something
Result: http://index.cfm?do=something

Should be: http://64.200.10.50/index.cfm?do=something

IP アドレスも考慮するように正規表現を変更するにはどうすればよいですか?

ありがとう

4

1 に答える 1

4

簡単な解決策: / と https:// と最初の / の間の空白以外のすべてを許可するだけです。そうすれば、単一レベルのドメイン名、IPv6 アドレスなどもサポートされます

/^https?\:\/\/[^\/\s]+(\/.*)?$/
于 2012-07-05T16:50:30.633 に答える