шведский SSN
Это две части. Сначала это формат строки SSN. Затем идет контрольная сумма SSN.
Формат
Шведский SSN состоит из даты рождения , закодированной в 6 или 8 цифр, за которой следует дефис, за которым следует дефисЕще 4 номера. Например, 300728-1243
и 19300728-1243
.
Принимая во внимание возможные значения года, месяца и дня, соответствующее регулярное выражение становится:
^(19|20)?\d{2}((0[1-9])|(1[012]))(([012][1-9])|(3[01]))-\d{4}$
Контрольная сумма
Последняя цифра является контрольной суммой, и она вычисляется из предыдущих 9 цифр (пропуская первые 2 для 12-значного варианта).
Контрольная сумма рассчитывается следующим образом:
- Цифры поэлементно умножаются на 212121-212
- Если какой-либо продукт состоит из двух цифр, его цифры добавляются.
- Цифры суммируются.
- Контрольная сумма - это последняя цифра 10 минус последняя цифра суммы.
Например (из Wikipedia ):
811228-987x:
8 * 2 = 16 1 + 6 = 7
1 * 1 = 1 1
1 * 2 = 2 2
2 * 1 = 2 2
2 * 2 = 4 4
8 * 1 = 8 8
9 * 2 = 18 1 + 8 = 9
8 * 1 = 8 8
7 * 2 = 14 1 + 4 = 5
Sum: 46
Last digit of sum: 6
10 - 6 = 4
Checksum: 4
670919-953x:
6 * 2 = 12 1 + 2 = 3
7 * 1 = 7 7
0 * 2 = 0 0
9 * 1 = 9 9
1 * 2 = 2 2
9 * 1 = 9 9
9 * 2 = 18 1 + 8 = 9
5 * 1 = 5 5
3 * 2 = 6 6
Sum: 50
Last digit of sum: 0
10 - 0 = 10
Checksum: 0