
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-1234 や XyZ12aBcd のような厳密に数字ではないコードや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 allowedJavaで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 コンバーターを使用してください。
組み合わせをお勧めするツール
JavaScript Regex テスター - regex パターンをライブでテスト。
Base64エンコーダー - ウェブ送信前に機密文字列をエンコード。
トークンジェネレーター - regex ルールに基づいた安全なtokenを生成。
CSV to JSON コンバーター - バリデーションと保存用にSSNの大量インポートを処理。
Frequently Asked Questions
この regex はSSNが本物かどうか確認できますか?
国際IDにも使用できますか?
SSNにはダッシュの代わりにスペースを使用できますか?
リアルタイムのフォームバリデーションに使用できますか?
SSNを regex バリデーションで保存することは安全ですか?
Related Articles






