この正規表現を使用して、ユーザーがドメイン名を入力するときにプロトコルが含まれているかどうかを検出しています。
if (/^[^http:\/\/|www.][a-zA-Z0-9\-]+\.(co\.uk|com|net|biz|org|org\.uk|eu|me\.uk)$/i.test(inp2){
... ok ...
}
97% の確率で動作し、一部の名前が失敗した理由に気付きました。プロトコル全体と一致せず、単語全体として扱うのではなく、文字 h、t、t、p または w、w、w を含むものと一致します。 http://:' または 'www.'
次でテストしたときにわかりました:
**hattooflat.com**
これは合格する必要がありますが、文字h、t、tが失敗しています
単語の境界 \b が必要だと思いますが、どこにあるのかわかりません:
(/^\b[^http:\/\/|www.]\b[a-zA-Z0-9\-]+\.( .....
また
(/^[^\bhttp:\b\/\/|\bwww\b.][a-zA-Z0-9\-]+\.( .....
私は近いことを知っています-正規表現は、4年間の開発後もまだ私に悲しみを与えています