Regex untuk nomor kartu kredit

Gunakan /^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/ untuk memeriksa apakah seluruh string adalah nomor kartu kredit yang valid. Setiap contoh di bawah sudah diuji dengan pola ini, dan kamu bisa membukanya di Regex Tester dengan contoh yang sudah dimuat.

Diperbarui

/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/
Buka di Regex Tester
InputHasil
4111111111111111✓ Cocok
5500000000000004✓ Cocok
378282246310005✓ Cocok
1234567812345678✗ Tidak cocok
4111 1111 1111 1111✗ Tidak cocok
411111111111111✗ Tidak cocok

Cara kerja pola

BagianArti
4\d{12}(?:\d{3})?Visa: diawali 4, 13 atau 16 digit
5[1-5]\d{14}Mastercard: 51–55, 16 digit
3[47]\d{13}American Express: 34 atau 37, 15 digit

Contoh kode

JavaScript

const re = /^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})', value))

PHP

preg_match('/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/', $value) === 1;

Catatan dan batasan

Hapus spasi dan tanda hubung sebelum menguji, lalu jalankan pengecekan checksum Luhn — regex hanya memeriksa format. Mastercard juga menerbitkan nomor 2221–2720; tambahkan |2(?:2[2-9]|[3-6]\d|7[01]|720)\d{12} untuk mencakupnya. Jangan pernah mencatat atau menyimpan nomor kartu mentah. Contohnya adalah nomor uji standar.

Pertanyaan yang sering diajukan

Apa regex untuk nomor kartu kredit?
/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/ — pola ini mencocokkan seluruh string. Lihat tabel di atas untuk fungsi setiap bagiannya.
Contoh mana yang cocok?
Dari contoh yang diuji, yang cocok adalah: 4111111111111111, 5500000000000004, 378282246310005. Yang lain 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.