NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
MACアドレス regex JavaScript バリデーター

MACアドレス regex JavaScript バリデーター

Qodex MACアドレス regex JavaScriptバリデーターを使用して、JavaScriptプロジェクト内のMACアドレスを簡単にバリデーションできます。APIテストやネットワーク、デバイス識別、設定タスクを管理する開発者に不可欠なこのツールは、MACアドレスの入力が正しいフォーマットに従っていることを確認します。カスタムパターンを試すにはJavaScript regex テスターと組み合わせるか、関連するネットワークデータのバリデーションにはIPアドレス regex JavaScriptバリデーターをお試しください。フロントエンドアプリケーションでは、パスワード regex JavaScriptバリデーターと組み合わせて厳格な入力チェックでユーザーデータを保護できます。

MACアドレス regex JavaScript バリデーター - ドキュメント

MAC regex とは?

MAC(Media Access Control)アドレスはネットワークインターフェースに割り当てられるユニークな識別子です。通常00:1A:2B:3C:4D:5Eまたは00-1A-2B-3C-4D-5Eという形式で、コロンまたはハイフンで区切られた16進数の桁で表されます。

JavaScriptでは正規表現(regex)を使用して、ネットワーキング、デバイス識別、アクセスフィルタリングで使用する前に文字列がこの構造に従っているかを確認できます。

MACアドレス regex パターン

MACアドレスのバリデーションに一般的に使用されるregexは以下の通りです。

^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$

これは以下にマッチします。

  • 2桁の16進数6グループ

  • : または - で区切られている

  • 大文字・小文字不問([A-Fa-f]による)

JavaScript regex を使用したMACアドレスのバリデーション方法

JavaScriptの完全な例を以下に示します。

function isValidMacAddress(mac) {
  const macRegex = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
  return macRegex.test(mac);
}

console.log(isValidMacAddress("00:1A:2B:3C:4D:5E")); // true console.log(isValidMacAddress("00-1A-2B-3C-4D-5E")); // true console.log(isValidMacAddress("001A.2B3C.4D5E")); // false

PythonでのMACアドレスバリデーション

Pythonでも正規表現を使用したMACアドレスバリデーションが可能です。

import re

def is_valid_mac(mac): """ 提供された文字列が有効なMACアドレスかを確認します (コロン、ハイフン、Ciscoドット表記をサポート) """ mac_regex = re.compile( r"^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$" # 00:1A:2B:3C:4D:5E または 00-1A-2B-3C-4D-5E にマッチ r"^([0-9A-Fa-f]{4}.){2}[0-9A-Fa-f]{4}$" # Cisco形式 001A.2B3C.4D5E にマッチ ) return bool(mac_regex.match(mac.strip()))

使用例:

test_cases = [ "01-23-45-67-89-AB", # True "01:23:45:67:89:AB", # True "0123.4567.89AB", # True "01-23-45-67-89-AH", # False (Hは16進数ではない) "01-23-45-67-AH", # False (グループが不足) ]

for mac in test_cases: print(f"{mac}: {is_valid_mac(mac)}")

JavaでのMACアドレスregexバリデーション

Javaでも同様のアプローチが取れます。

import java.util.regex.Pattern;

public class MacAddressValidator { // コロン、ハイフン、ドット区切りフォーマットを受け付けるregexパターン private static final Pattern MAC_REGEX = Pattern.compile( "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$" + "^([0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4})$" );

public static boolean isValidMac(String input) {
    return input != null && MAC_REGEX.matcher(input).matches();
}

}

C#でのMACアドレスregexバリデーション

C#でのバリデーションも同様に可能です。

using System.Text.RegularExpressions;

bool IsValidMacAddress(string input) { // 01-23-45-67-89-AB、01:23:45:67:89:AB、0123.4567.89ABなどのフォーマットにマッチ var macRegex = new Regex( @"^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$^([0-9A-Fa-f]{4}.){2}[0-9A-Fa-f]{4}$" ); return !string.IsNullOrEmpty(input) && macRegex.IsMatch(input); }

regex バリデーションの時間・空間計算量

MACアドレスが正規表現にマッチするかを確認する場合、特にスケールでネットワークデータを処理する際は効率性が重要です。regexエンジンは入力文字列の各文字を一度だけ検査するため、バリデーション処理は入力長に対して線形です。長さNのMACアドレスに対して、処理はO(N)時間で実行されます。

空間については、入力のサイズに関わらず、JavaScriptでのregexバリデーションは固定量の追加メモリを使用します。入力に合わせてスペースを割り当てる必要がないため、空間計算量はO(1)のままです。

実際のユースケース

  • ネットワーク設定: ルーターやサーバー設定ツールで保存または使用する前にMACアドレスをバリデーション。

  • デバイス管理: IoTエコシステムでデバイスを識別・確認。

  • アクセス制御: セキュリティに敏感なシステムで特定のMACを許可または拒否。

  • フォーム入力バリデーション: Webアプリでユーザーが無効なMACフォーマットを入力しないように確認。

プロのヒント

  • バリデーション前に必ず入力文字列の空白をトリムしてください。

  • regexはフォーマットチェックのためのもので、正当性の確認ではありません。構文的に有効なMACアドレスでも実在しない場合があります。

  • アプリケーションが異なるソースを扱う場合は、: と - の両フォーマットをサポートしてください。

  • セキュアなストレージや送信にはBase64エンコーダーの使用を検討してください。

  • バリデーション後にユニークなデバイストークンを割り当てるためにトークンジェネレーターと組み合わせて使用してください。

JavaScriptで使用するメタキャラクター

  • ^: 文字列の先頭でregexをアンカー。

  • $: 文字列の末尾でregexをアンカー。

  • [0-9A-Fa-f]: 1つの16進数文字にマッチ(大文字・小文字不問)。

  • {2}: 量指定子 - ちょうど2文字。

  • [:-]: ':' または '-' にマッチ。

  • {5}: 量指定子 - グループを5回マッチ。

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

regex 入力例

  1. "01:23:45:67:89:AB" - 有効

  2. "01-23-45-67-89-AB" - 有効

  3. "0123.4567.89AB" - 無効

  4. "G1:23:45:67:89:ZZ" - 無効

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

このMACアドレスバリデーターと組み合わせてお使いください。

Frequently Asked Questions

このregexをCiscoフォーマットのようなドット(.)区切りMACアドレスのバリデーションに使用できますか?

いいえ。このバリデーターはコロン : とハイフン - のフォーマットのみサポートします。Ciscoフォーマットにはカスタムパターンが必要です。

MACバリデーションは大文字・小文字を区別しますか?

いいえ。パターンは大文字と小文字の16進数の文字の両方をサポートするために[A-Fa-f]を使用しています。

このregexは本物のMACアドレスを検出できますか?

フォーマットのみをチェックし、MACが割り当てられているか使用中かどうかは確認しません。そのためにはデバイスレジストリまたはARPツールが必要です。

MACのバリデーションはクライアント側とサーバー側のどちらで行うべきですか?

常に両方でバリデーションしてください。フロントエンドバリデーションにJavaScriptを使用し、セキュリティのためにバックエンドロジックでもregexを使用してください。

余分なコロンやハイフンを入力した場合はどうなりますか?

regexはfalseを返します。正しくフォーマットされた文字列のみマッチします。

APIを今すぐテストしましょう!

平易な日本語で記述するだけで、Qodexがセキュアですぐ実行できるテストに変換します。