Lewati ke konten

NIK

32Provinsi
Jawa Barat
73Kabupaten atau kota
Kota Bandung
27Kecamatan
Gedebage
570590Tanggal lahir dan jenis kelamin
17 Mei 1990, perempuan (tanggal + 40)
1349Nomor urut

Strukturnya benar

Go TypeScript Hasil
nik.Valid(s) nik.isValid(s) Apakah s NIK yang strukturnya benar
nik.Parse(s) nik.parse(s) Field di bawah
nik.ParseAt(s, year) nik.parseAt(s, year) Sama, dengan abad lahir dihitung relatif ke year
nik.Format(s) nik.format(s) 16 digit tanpa pemisah
nik.Mask(s) nik.mask(s) Hanya 4 digit terakhir terlihat

Pemisah yang diterima: spasi, ., dan -.

Field (JSON) Contoh Catatan
nik 16 digit Tanpa pemisah
provinceCode 75
regencyCode 75.02
districtCode 75.02.01 Dicek ke data wilayah, termasuk kode historis
birthDate 1959-06-07 YYYY-MM-DD. Tahun dua digit dianggap tahun terakhir yang belum melewati tahun ini (atau year di ParseAt)
sex male male atau female
serial 9583 Tidak pernah 0000

Parse tidak memuat nama wilayah. Untuk mengubah kode kecamatan jadi nama, pakai region.FromNIK / region.fromNik.

length, charset, region (kode kecamatan tidak ada), date (bukan tanggal yang ada), serial.

package main
import (
"errors"
"fmt"
"github.com/haikalmumtaz233/nusaindex/nik"
)
func main() {
fmt.Println(nik.Valid("7502010706599583"))
parsed, err := nik.Parse("7502010706599583")
if err == nil {
fmt.Println(parsed.DistrictCode, parsed.BirthDate, parsed.Sex, parsed.Serial)
}
older, err := nik.ParseAt("3315101003154137", 2010)
if err == nil {
fmt.Println(older.BirthDate)
}
formatted, err := nik.Format("7502 0107 0659 9583")
if err == nil {
fmt.Println(formatted)
}
fmt.Println(nik.Mask("7502010706599583"))
_, err = nik.Parse("7502013206599583")
fmt.Println(errors.Is(err, nik.ErrDate))
}
Keluaran
true
75.02.01 1959-06-07 male 9583
1915-03-10
7502010706599583
************9583
true