ユーザーが入力したURLをチェックする機能を実装したいと思っております。
次のようなURLをチェックするにあたり、現状の仕様では部分一致で検出したいと考えております。
"http://www.google.com" "https://www.yahoo.co.jp" "https://teratail.com/questions.html" " www.hogehoge.com" "hogehoge.jp" "hogehoge" # こういうケースも想定しなくてはいけません
そのため、次のようなどのURLに対しては部分一致に引っかかってしまうため、何とかプログラムで制御したいと思います。
http http://www .com .jp .html
入力時に制限をかけるのも一つ手段としてありますが、そういったことはできず、あくまでユーザーが入力してきた文字列からチェックしなくてはいけません。
URIのモジュールを使用して上手いこと取得できないかなと考えたのですが、必ずしもhttp://から入力してくれるわけではありませんので、URI::Generic オブジェクトが生成され、期待するようなプログラムが実装できません。
url = "http://www.google.com" URI(url).host URI(url).path
良い例
url = "http://www.hogehoge/aaa/hugahuga.html" URI(url).path.split(".")[0] => "/aaa/hugahuga"
#ダメな例
URI("www.hogehoge.com").path.split(".")[0] => "www" このケースではhogehogeのみを取得したい
URI("hogehoge.com/piyo").path.split(".")[0] => "hogehoge" こういうケースはそもそも実装可能なのかどうかすら怪しくなってきました。。。 ここでは ["hogehoge","piyo"] を取得したい
宜しくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。