NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
URL Regex JavaScriptバリデーター

URL Regex JavaScriptバリデーター

URL Regex JavaScriptバリデーターでURLを即座に検証できます。ユーザー送信フォーム、データスクレイピング、API呼び出しなど、すべてのリンクが正しくフォーマットされているかを確認します。HTTP/HTTPS、サブドメイン、クエリパラメーターに対応。JavaScript Regex Testerでパターンをライブテストしたり、Token GeneratorBase64 EncoderでエンコードされたURLやアクセストークンを安全に処理したりすることもできます。

URL Regex JavaScriptバリデーター - ドキュメント

JavaScriptにおけるURL Regexとは?

JavaScriptにおいて、URL regex(正規表現)は、文字列が有効なウェブアドレスの構造に従っているかどうかを確認するために使用されます。HTTP/HTTPSリンク、ドメイン名、オプションのパスやクエリパラメーターが含まれます。

有効なURLには主に3つの要素があります:

主な構成要素:

  • プロトコル (httpまたはhttps)

  • ドメイン名(またはIPアドレス)

  • ポートとパス(ポートは任意で、パスはリソースの場所を指定します)

適切に構成されたregexは、これらの主要な構成要素がそれぞれ正しくフォーマットされているかどうかを確認するのに役立ちます。

URL regexパターンが役立つ場面:

  • フォームやユーザー入力のリンク検証

  • テキストやログからのURL抽出

  • ウェブスクレイピングや自動化スクリプトでのデータクリーニング

  • 無効なリンクのサーバー送信防止

有効なURLの条件とは?

有効なURLには3つの主要部分があります:

  • プロトコル:リソースへのアクセス方法 (例:http、https)。

  • ドメイン名またはIPアドレス:ウェブサイトやリソースの一意のアドレス。

  • ポートとパス (任意):ポート番号と特定のパスやファイル。

よく使われるURL Regexパターン (JavaScript)

基本的なURL検証によく使われるregexパターン:

/^(https?:\/\/)?([\w-]+\.)+[\w-]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?$/

このパターンは以下を確認します:

  • httpまたはhttps(任意)

  • 有効なドメイン名

  • オプションのパスとクエリ文字列

JavaScriptでregexによるURL検証を行う方法

JavaScriptでregexを使ったURL検証の基本例:

function isValidURL(url) {
  const urlPattern = /^(https?:\/\/)?([\w-]+\.)+[\w-]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?$/;
  return urlPattern.test(url);
}

// テスト console.log(isValidURL("https://example.com")); // true console.log(isValidURL("http://my.site/path?q=1")); // true console.log(isValidURL("invalid-url")); // false

有効・無効なURLの例

入力

有効?

https://example.com

はい

http://sub.domain.co.uk

はい

ftp://invalid.protocol.com

いいえ

example..com

いいえ

JavaScript URLオブジェクトを使った検証


Regexよりも堅牢な組み込みの解決策として、JavaScriptのURLオブジェクトがあります。複雑なURLのエッジケースも処理し、regexのパターン管理が不要です。

文字列から新しいURLオブジェクトを作成しようとし、失敗した場合はエラーをキャッチするだけです。

function isValidURL(url) {
try {
new URL(url);
return true;
} catch (err) {
return false;
}
}

使用例:

console.log(isValidURL("https://example.com"));        // true
console.log(isValidURL("http://sub.domain.com/path")); // true
console.log(isValidURL("not a url"));                  // false
console.log(isValidURL("ftp:/missing.slashes.com"));   // false

URLバリデーションのアプローチ比較

1. Regular Expression (Regex) を使う

URLの構造を素早くチェックするためによく使われます。以下を確認します:

  • httpまたはhttps(任意)

  • 有効なサブドメインとドメイン名

  • 2文字以上のドメイン拡張子

  • オプションのパス、クエリパラメーター、フラグメント

2. URL Constructorを使う

JavaScriptの組み込みオブジェクトで、カスタムパターンなしに検証と解析が行えます:

このメソッドは信頼性が高く、エッジケースも対応できます。包括的な検証が必要な場合にお勧めです。

3. サードパーティパッケージを使う

より高度な検証には、is-urlやis-url-httpなどのnpmパッケージが便利です:

import isUrl from 'is-url';
console.log(isUrl("https://example.com")); // true
console.log(isUrl("invalid-url")); // false

用途に合わせてアプローチを選択してください:簡単なチェックにはregex、信頼性にはURLオブジェクト、高度な検証にはサードパーティパッケージ。

URLオブジェクトを使う理由

  • 正確性:URLオブジェクトは公式のURLパース規則に従い、regexが見逃しがちなエッジケースも処理します。

  • 可読性:コードが読みやすく、メンテナンスも容易です。

  • エラーハンドリング:無効なURLの場合は明確なエラーをスローします。

  • 柔軟性:ホスト名、パス名、クエリパラメーターなど、URLの各部分に直接アクセスできます。

npm パッケージを使ったURL検証

is-url-httpの使い方

  1. パッケージのインストール:

    npm install is-url-http
  2. JavaScriptでのインポートと使用:

    import isUrlHttp from 'is-url-http';
    

    // 例 isUrlHttp("https://www.example.com"); // true isUrlHttp("http://example.com"); // true isUrlHttp("www.example.com"); // false isUrlHttp("invalid-url"); // false

is-urlの使い方

import isUrl from 'is-url';

console.log(isUrl("https://www.example.com")); // true console.log(isUrl("http://example.com")); // true console.log(isUrl("www.example.com")); // false console.log(isUrl("invalid-url")); // false

JavaScript URL Regexのプロのヒント

  • 部分マッチが不要な場合は非キャプチャグループを使用するとパフォーマンスが向上します。

  • JavaScript Regex Testerと組み合わせて複雑なパターンをインタラクティブにテストします。

  • 過度に厳格なパターンは避けてください。有効なURLをブロックしてしまうことがあります。

  • 検証前に入力を正規化してください(例:余分な空白の除去)。

  • Token Generatorでアクセストークンを含むURLの検証や、Base64 EncoderでURLコンポーネントのエンコードを行えます。

使用されるRegexメタキャラクター

  • ^ : 文字列の先頭にアンカーします

  • $ : 文字列の末尾にアンカーします

  • ? : 直前のトークンをオプションにします

  • () : キャプチャグループ

  • (?:): 非キャプチャグループ

  • [] : 文字セット

  • . : 改行を除く任意の文字に一致

  • + : 1回以上の出現に一致

  • * : 0回以上の出現に一致

  • / : エスケープされたスラッシュ(パスコンポーネント用)

組み合わせをお勧めするツール

Frequently Asked Questions

有効なURLはどのような形式ですか?

有効なURLはhttp://またはhttps://で始まり、ドメイン名とオプションのパスやクエリパラメーターが続きます。

IPベースのURLの検証に使用できますか?

はい、ただしIPアドレス(例:https://192.168.0.1)に一致するようにregexを拡張する必要があります。

このregexはURLが実際に存在するかどうかを確認しますか?

いいえ、regexはフォーマットのみを確認します。アクティブなウェブページへのリンクかどうかは確認しません。

.co.inのようなサブドメインやTLDに対応していますか?

はい、このregexは複数部分のドメイン名をサポートしています。

ftp://がこのパターンで機能しないのはなぜですか?

このパターンはhttpとhttps用に設計されています。必要に応じて他のプロトコルも含むよう拡張できます。

APIをテストしましょう!

平易な英語で記述するだけで、QodexがセキュアなAPIテストを自動生成します。