小さなブックマークアプリのURLバリデーターを作成しようとしています。URL Validator:http:// not typedが動的に渡された場合
私はそれが有効であるべきか受け入れるように受け入れるためにバリデーターを行っている:我々は通常のhttpを入力しない現実の生活の中で私たちの
http://example.com
http://www.examples.com
http://www.example.com
ftp://www.example.com
ftp://cdn.example.com/
etc.
今のように多く://ウェブサイトのために私はユーザーがhttp://、https://、ftp://を使わずに何かを入力して、デフォルトでhttp://を渡す必要があります。入力に渡すのではなく、バックエンドに渡したいと思います。 HTTP場合
$("#in").on('keyup', function() {
var url = $('#in').val();
var match = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/
if (match.test(url)) {
console.log("URL OK")
} else {
console.log("URL invalid")
}
});
://型付けではないが、有効なURLとして表示するようにconsole.logに渡し
だから、私は例えば、私はこれを持っています。
これは多くのバグに終わる可能性があるため、これは良い方法ではありませんが、私がhttp://ウェブサイトで終わると思う唯一の方法です。私はユーザーにすべてのブックマークにhttp://を入力させることはできません。
また、プラグインを使用したくないことにご注意ください。
私もこのことについてあなたの考えを教えてください。 URLが失敗した場合、それは一致したが、プロトコルを逃した場合
おかげ
ありがとうございます。私が探していたもの。これは良い習慣だと思いますか?私はそれが多くのバグに終わると思っていたのですか? – jQuerybeast
クリーンな方法で実装されていれば、これはバグの傾向があまりありませんが、URL検証の正規表現についていくつかの研究をしたいと思うかもしれません。一方、クライアント制御のコードなので、悪意のあるコードが送信されていないかどうかを確かめることができないため、サーバー上でこれを行うことをお勧めします。とにかくサーバーのセキュリティ上の問題がないかどうかチェックする必要があります。そのため、まず最初にフィルタリングしないでください。 – bardiir
ブックマークはlocalstorageに基づいているため、私のサーバーから何も渡されません。私はURLの検証のための研究をした、なぜこの長いregExpに終わったのか。問題は、誰かがバグのあるURLを見つけたり追加したりしようとすると、達成することになるということです。それ以外に、私はユーザーが実際のURLで終わると信じています。 – jQuerybeast