NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
SSN Regex Javascript Validator

SSN Regex Javascript バリデーター

JavaScript Regex テスターを使ってU.S. SSNを簡単に検証できます。このツールは入力が標準的なXXX-XX-XXXXフォーマットに従っているかを確認します。安全なオンボーディングフローの構築やフォームデータのクレンジングに最適です。機密情報の保護にはBase64エンコーダーと、大量ファイルの変換にはCSV to JSON コンバーターと組み合わせてご利用ください。

SSN Regex Javascript バリデーター - ドキュメント

SSN Regex とは何ですか?

米国では、社会保障番号(SSN)はXXX-XX-XXXXの形式の9桁番号です。本人確認やデータ入力の精度が求められるアプリケーションではこのフォーマットの検証が重要です。

正規表現(regex)は、機密操作が実行される前にフォーマットが正しいことを確認するのに役立ちます。

一般的なSSN Regex パターン

/^\d{3}-\d{2}-\d{4}$/

このパターンの動作:

  • ^\d{3}: ちょうど3桁で始まる

  • -: ハイフン

  • \d{2}: 2桁が続く

  • -: もう一つのハイフン

  • \d{4}$: 4桁で終わる

有効なSSN:123-45-6789

無効なSSN:12-3456-789 または 123456789

より正確なSSN Regex

上記のパターンは標準SSNフォーマットにマッチしますが、000、666、または9で始まるエリア番号、00または0000のグループなど、すべての無効な組み合わせはキャッチしません。

より厳格なチェックが必要な場合:

^(?!(0006669))\d{3}-(?!00)\d{2}-(?!0000)\d{4}$

改善点:

  • エリア番号(最初の3桁)が 000、666、または9始まりでないことを確認。

  • グループ番号(中央の2桁)が 00 でないことを確認。

  • シリアル番号(末尾の4桁)が 0000 でないことを確認。

この追加レイヤーにより明らかに無効なSSNを排除できますが、番号が実際の人物に割り当てられているかどうかは保証できません。

カスタムフォーマット向けの柔軟なパターン

ハイフンなしのオプション形式を含む、3-2-4分割の非ハイフン文字にマッチする regex を使いたい場合:


このパターンの動作:

  • ^[^-]{3}: ハイフン以外のちょうど3文字で始まる

  • -?: 任意のハイフン

  • [^-]{2}: ハイフン以外の2文字

  • -?: もう一つの任意のハイフン

  • [^-]{4}$: ハイフン以外の4文字で終わる

これは ABC-DE-1234XyZ12aBcd のような厳密に数字ではないコードやIDにも便利です。

数値形式とマスク形式の両方にマッチ

標準数値SSNと「X」文字でマスクされたもの(XXX-XX-XXXXなど)の両方を受け入れたい場合は、パターンを拡張します。

更新された Regex パターン:

  • \d{3}-\d{2}-\d{4}: 数値のSSNにマッチ。

  • [Xx]{3}-[Xx]{2}-[Xx]{4}: 大文字または小文字のXにマッチ。

  • パイプ(|)により数値またはマスク形式のどちらかにマッチ(混在は不可)。

  • ^$ でSSN全体が検証されます。


例:

  • 有効な数値SSN:123-45-6789

  • 有効なマスクSSN:XXX-XX-XXXX または xxx-xx-xxxx

  • 無効な混在:123-XX-6789

JavaScriptでSSNを検証する方法

完全なJavaScriptコード例:

function isValidSSN(ssn) {
  const ssnRegex = /^\d{3}-\d{2}-\d{4}$/;
  return ssnRegex.test(ssn);
}

// Example usage: console.log(isValidSSN("123-45-6789")); // true console.log(isValidSSN("123456789")); // false

PythonでSSNを検証する方法

PythonアプリケーションでSSNが正しい形式かを確認するには、正規表現を使った簡単なアプローチがあります:

import re

def is_valid_ssn(ssn): pattern = r"^(?!6660009\d{2})\d{3}-(?!00)\d{2}-(?!0000)\d{4}$" return bool(re.match(pattern, ssn))

使用例:

print(is_valid_ssn("856-45-6789"))   # True – valid SSN
print(is_valid_ssn("000-45-6789"))  # False – invalid, leading block not allowed
print(is_valid_ssn("856-452-6789")) # False – wrong format
print(is_valid_ssn("856-45-0000"))  # False – trailing block not allowed

JavaでSSNを検証する方法

import java.util.regex.Pattern;

public class SSNValidator { // Pattern blocks obviously invalid ranges (000, 666, 900-999 in the first group; 00 in the middle; 0000 at the end) private static final Pattern SSN_REGEX = Pattern.compile( "^(?!6660009\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$" );

public static boolean isValidSSN(String ssn) {
    if (ssn == null) return false;
    return SSN_REGEX.matcher(ssn).matches();
}

// Example usage
public static void main(String[] args) {
    System.out.println(isValidSSN("856-45-6789")); // true
    System.out.println(isValidSSN("000-45-6789")); // false
    System.out.println(isValidSSN("856-452-6789")); // false
    System.out.println(isValidSSN("856-45-0000")); // false
}

}

SSN Regex を使えるシーン

  • ユーザーオンボーディング:金融または人事アプリケーションでユーザーが有効なSSNを入力することを確認。

  • データベース整合性:データベースへの保存前にフォーマットエラーをキャッチ。

  • フォームバリデーション:期待されるSSN構造に従わない送信をブロック。

JavaScript Regex テスターを使ってバリエーションを試したり、カスタムパターンを構築したりしてください。

パフォーマンスについて

このSSN regex パターンによる検証では、入力文字列の各文字を一度だけ調べるため、時間計算量は線形(O(N)、Nは文字数)です。空間要件は最小限で、regex エンジンは入力サイズに比例した追加メモリを必要としません。

プロのヒント

  • ライブフォームバリデーションの高速チェックには .test() を使用してください。

  • SSNを平文で保存しないこと。転送前にBase64エンコーダーで値を難読化してください。

  • セキュリティ強化のため、regex バリデーションとサーバーサイドチェックおよび暗号化を組み合わせてください。

  • モックデータで regex を定期的にテストするにはトークンジェネレーターを活用してください。

  • ユーザーがアップロードしたファイルからSSNを一括検証する場合はCSV to JSON コンバーターを使用してください。

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

Frequently Asked Questions

この regex はSSNが本物かどうか確認できますか?

いいえ。フォーマットのみを確認し、番号が正式に発行されているかどうかは検証しません。

国際IDにも使用できますか?

このパターンはU.S. SSN専用です。他の国には異なるパターンを使用してください。

SSNにはダッシュの代わりにスペースを使用できますか?

いいえ。有効なSSNは正しい位置にハイフンが含まれている必要があります。

リアルタイムのフォームバリデーションに使用できますか?

はい。軽量でクライアントサイドのチェックに最適です。

SSNを regex バリデーションで保存することは安全ですか?

バリデーションは最初のステップに過ぎません。SSNは常に暗号化と適切なアクセス制御で保護してください。

APIのテストを今日から始めましょう!

平易な日本語で書くだけで、Qodexが安全ですぐに実行できるテストに変換します。