Regex untuk Nomor Jaminan Sosial AS

Gunakan /^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/ untuk memastikan seluruh string adalah nomor Jaminan Sosial AS yang valid. Setiap contoh di bawah sudah diuji terhadap pola ini, dan kamu bisa membukanya di Regex Tester dengan contoh yang sudah dimuat.

Diperbarui

/^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/
Buka di Regex Tester
InputHasil
123-45-6789✓ Cocok
219-09-9999✓ Cocok
000-12-3456✗ Tidak cocok
666-12-3456✗ Tidak cocok
123-00-4567✗ Tidak cocok
123456789✗ Tidak cocok
900-12-3456✗ Tidak cocok

Cara kerja pola

BagianArti
(?!000|666|9\d\d)\d{3}Nomor area: tiga digit, tetapi tidak pernah 000, 666, atau 900–999
(?!00)\d{2}Nomor grup: tidak pernah 00
(?!0000)\d{4}Nomor seri: tidak pernah 0000
-Tanda hubung di antara bagian

Contoh kode

JavaScript

const re = /^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}', value))

PHP

preg_match('/^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/', $value) === 1;

Catatan dan batasan

Negative lookahead menyingkirkan rentang nomor yang tidak pernah diterbitkan oleh Social Security Administration. Perlakukan SSN sebagai data sensitif: sembunyikan (mask) di log dan antarmuka.

Pertanyaan yang sering diajukan

Apa regex untuk nomor Jaminan Sosial AS?
/^(?!000|666|9\d\d)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$/ — pola ini mencocokkan seluruh string. Lihat tabel di atas untuk fungsi tiap bagiannya.
Contoh mana yang cocok?
Dari contoh yang diuji, yang cocok adalah: 123-45-6789 dan 219-09-9999. Contoh lainnya tidak cocok.
Bagaimana cara menguji regex ini?
Klik “Buka di Regex Tester” — pola, flag, dan teks contoh akan dimuat otomatis, dan kecocokan akan disorot saat kamu mengedit.