2

このプロトタイプ URL チェッカーの場合。私がやろうとしているのは、この時点で長さをチェックすることだけです。

url:            /:\/\/(www\.)?.{1,200}\..{1,1800}/,

Jslint.com がエラーを出している

Insecure '.'

このSO 投稿のこの否定された文字セットで同様のエラーが発生しました。

その背景を考えると、jslint がすべてまたはほとんどすべてをテスト パターンとして許可することを好まないことは明らかだと思います。

したがって、単に を置き換える必要があります。ドメインとドメインの後の部分に有効な文字セットを使用します。

ドメインについては、次のように簡略化できます

[a-zA-Z0-9\-]

ドメインの後の部分の文字セットは何ですか...つまり、foo.com/の後

だからある

//

に続く

www.(optional)

に続く

foo.boo.moo.(note it matched up until the last .) ( this character set is listed above)

に続く

X

X をすべてひとまとめにする方法:

http://www.foo.X

ポートやクエリ情報の抽出には関心がありません。jslint ごとに正規表現を「安全」にするために、ドメインの後のすべての文字セットが必要なだけです。

注意してください、私は段階的に改善しようとしているだけです。

JavaScript, The Good Parts の正規表現の章には優れた URL チェッカーがありますが、今必要なものではありません。

4

2 に答える 2

1

探している正規表現の詳細は、StackOverflow およびRFC 3986のこの回答にあります。

「ホスト」の特定の文字と表現は次のとおりです。[a-z0-9\-._~%]+

有効な URL は IP アドレス (IPv4、IPv6、および IPvFuture) の形式であることに注意してください。詳細については、リンクされた RegEx を確認してください。

于 2013-06-03T02:28:41.680 に答える