ホームページ > ウェブフロントエンド > jsチュートリアル > プロトコルプレフィックスの有無にかかわらず URL を照合する堅牢な正規表現を作成するにはどうすればよいですか?

プロトコルプレフィックスの有無にかかわらず URL を照合する堅牢な正規表現を作成するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-24 05:54:17
オリジナル
968 人が閲覧しました

How Can I Create Robust Regular Expressions to Match URLs with and without Protocol Prefixes?

URL の照合: 包括的な正規表現アプローチ

入力から URL を抽出する場合、さまざまな処理に対応できる堅牢な正規表現を用意することが重要です。シナリオ。この場合、指定された正規表現は、「http」または「https」プロトコル プレフィックスのない URL と一致しません。この課題に対処するために、次の 2 つの代替正規表現を提案します。

HTTP/HTTPS プロトコルが必要な URL の場合:

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
ログイン後にコピー

HTTP を使用しない URL の場合/HTTPSプロトコル要件:

[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
ログイン後にコピー

これらの正規表現は、プロトコル プレフィックスの有無にかかわらず、URL を効果的にキャプチャします。実験目的の場合は、http://regexr.com?37i6s (プロトコル プレフィックスあり) および http://regexr.com/3e6m0 (プロトコル プレフィックスなし) でこれらの式をテストできます。

以下は例です。 JavaScript 実装:

const expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi;
const regex = new RegExp(expression);
const t = 'www.google.com';

if (t.match(regex)) {
  alert("Successful match");
} else {
  alert("No match");
}
ログイン後にコピー

以上がプロトコルプレフィックスの有無にかかわらず URL を照合する堅牢な正規表現を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート