Cập nhật lần cuối:

Định dạng địa chỉ theo quốc gia và số ký tự - Thiết kế form nhập liệu toàn cầu

Khoảng 5 phút đọc

Một địa chỉ ở Nhật Bản thường dài 25-40 ký tự và có thể tới khoảng 60 ký tự khi kèm tên tòa nhà, địa chỉ ở Anh thường nằm trong khoảng 30-60 ký tự (riêng dòng tên đường theo chuẩn dữ liệu PAF của Royal Mail có thể dài tới 80 ký tự), còn địa chỉ ở Thái Lan viết đầy đủ bằng chữ Thái có khi vượt quá 100 ký tự. Muốn thiết kế form nhập địa chỉ cho người dùng quốc tế, trước hết phải hiểu độ dài và cấu trúc địa chỉ của từng nước khác nhau đến mức nào. Đặt maxlength quá ngắn thì địa chỉ của người dùng bị cắt cụt; đặt quá dài thì lại mở đường cho dữ liệu rác.

Cấu trúc địa chỉ theo quốc gia - Từ gọn gàng đến tầng tầng lớp lớp

Mỗi quốc gia có cấu trúc địa chỉ riêng, và điểm khác biệt không chỉ nằm ở độ dài mà cả ở thứ tự sắp xếp các thành phần.

Quốc giaThứ tự thành phầnĐộ dài thường gặpĐặc điểm
Nhật BảnMã bưu chính, tỉnh, thành phố, quận, khu phố, số nhà25-40 ký tựViết từ đơn vị lớn đến nhỏ, mã bưu chính 7 chữ số
MỹSố nhà, đường, thành phố, bang, mã ZIP35-55 ký tựViết từ nhỏ đến lớn, ZIP code 5 hoặc 9 chữ số
AnhSố nhà, đường, thành phố, mã bưu chính30-60 ký tựPostcode ngắn (6-8 ký tự) nhưng định vị rất chính xác
ĐứcĐường + số nhà, mã bưu chính, thành phố25-40 ký tựSố nhà đặt sau tên đường
Hàn QuốcTỉnh, thành phố, quận, phường (dong), số nhà20-35 ký tự (chữ Hangul)Giống Nhật, viết từ lớn đến nhỏ
Thái LanSố nhà, moo, soi, đường, khet, khwaeng, tỉnh, mã bưu chính60-120 ký tự (chữ Thái)Nhiều cấp hành chính, địa danh dài
BrazilĐường, số nhà, thông tin bổ sung, khu phố, thành phố, bang, mã CEP40-70 ký tựCó trường "complemento" đặc trưng

Địa chỉ Thái Lan thuộc hàng dài nhất thế giới. Hệ thống hành chính của Thái có nhiều cấp (changwat, amphoe, tambon, moo), và địa danh viết bằng chữ Thái thường rất dài. Một địa chỉ đầy đủ ở Bangkok hoàn toàn có thể vượt 100 ký tự, đủ để gây rắc rối cho bất kỳ form nào đặt maxlength dưới 80.

Mã bưu chính - Từ 4 đến 10 ký tự

Mã bưu chính (postal code) là thành phần địa chỉ có độ dài chênh lệch nhiều nhất giữa các quốc gia.

Quốc giaĐịnh dạngĐộ dàiVí dụ
Nhật BảnNNN-NNNN8 ký tự (tính cả dấu gạch)100-0001
MỹNNNNN hoặc NNNNN-NNNN5 hoặc 10 ký tự10001, 10001-1234
AnhAN NAA, ANN NAA, v.v.6-8 ký tựSW1A 1AA
CanadaANA NAN7 ký tựK1A 0B1
ĐứcNNNNN5 ký tự10115
BrazilNNNNN-NNN9 ký tự (tính cả dấu gạch)01001-000
IrelandANN XXXX8 ký tự (tính cả dấu cách)D02 AF30

Mã bưu chính của Anh nằm trong số những hệ thống rắc rối nhất. Vì có tới 6 định dạng hợp lệ (A9 9AA, A99 9AA, A9A 9AA, AA9 9AA, AA99 9AA, AA9A 9AA), một mẫu regex viết vội rất dễ từ chối nhầm những mã hoàn toàn hợp lệ. Nhiều lập trình viên vì thế chọn cách chỉ kiểm tra độ dài và dạng thức cơ bản thay vì cố validate cho thật chuẩn.

Thiết kế maxlength cho form địa chỉ - Bài toán cân bằng

Chọn maxlength cho trường địa chỉ là bài toán cân bằng giữa an toàn dữ liệu (chặn dữ liệu rác) và trải nghiệm người dùng (không cắt mất địa chỉ hợp lệ).

Trườngmaxlength gợi ýLý do
Địa chỉ dòng 1 (đường, số nhà)100 ký tựĐủ chứa địa chỉ Thái Lan và các tên đường dài
Địa chỉ dòng 2 (bổ sung)100 ký tựTên tòa nhà, số phòng có thể rất dài
Thành phố50 ký tựTên làng "Llanfairpwllgwyngyll..." ở xứ Wales dài 58 ký tự
Tỉnh/Bang50 ký tựTên chính thức của bang Veracruz de Ignacio de la Llave (Mexico) dài 31 ký tự
Mã bưu chính12 ký tựBao trọn mọi định dạng quốc tế
Quốc gia60 ký tự"The United Kingdom of Great Britain..." dài 56 ký tự

Tên thành phố dài nhất thế giới thuộc về một ngôi làng ở xứ Wales: "Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch", đúng 58 ký tự. Đây dĩ nhiên là trường hợp cá biệt, nhưng nó cho thấy vì sao maxlength 30 ký tự cho trường thành phố là không đủ. Trên thực tế, nhiều thành phố ở Ấn Độ, Sri Lanka và Thái Lan có tên dài 20-35 ký tự.

Địa chỉ Nhật Bản - Mổ xẻ cấu trúc và độ dài

Địa chỉ Nhật Bản có cấu trúc đặc trưng: viết từ đơn vị lớn xuống đơn vị nhỏ, ngược với phần lớn các nước phương Tây.

Một địa chỉ Nhật đầy đủ gồm: mã bưu chính (8 ký tự) + tỉnh (2-4 ký tự kanji) + thành phố, quận/phường (mỗi cấp 2-8 ký tự) + khu phố và số nhà (5-15 ký tự) + tên tòa nhà kèm số phòng (0-20 ký tự). Cộng lại thường rơi vào khoảng 25-55 ký tự.

Nét riêng của địa chỉ Nhật là hệ thống "chome-banchi-go" (丁目-番地-号): đánh số theo lô đất trong khu vực thay vì theo mặt đường, nên tìm đường ở Nhật khó hơn so với hệ thống phương Tây. Bù lại, xét về số ký tự thì cách viết này rất gọn - cụm "3-15-7" chỉ chiếm 6 ký tự.

Khi thiết kế form cho thị trường Nhật, nên tách địa chỉ thành các trường riêng: mã bưu chính (dùng để tự động điền tỉnh và thành phố), phần còn lại của địa chỉ, và tên tòa nhà. Cách này vừa giảm lỗi gõ nhầm vừa giữ cho dữ liệu có cấu trúc. Như đã phân tích trong bài Xác thực đầu vào form, chia nhỏ trường nhập liệu giúp kiểm soát chất lượng dữ liệu tốt hơn hẳn.

Địa chỉ quốc tế trong thương mại điện tử - Thách thức thực tế

Các nền tảng thương mại điện tử quốc tế như Amazon, Shopify hay Magento phải xử lý địa chỉ từ hơn 200 quốc gia và vùng lãnh thổ, và mỗi bên đi theo một hướng khác nhau.

Amazon dùng form địa chỉ tự thích ứng theo quốc gia: chọn Nhật Bản thì trường mã bưu chính nhảy lên đầu và địa chỉ được điền tự động, chọn Mỹ thì form đổi sang thứ tự số nhà trước. Trải nghiệm rất mượt, nhưng đổi lại phải nuôi cả một cơ sở dữ liệu định dạng địa chỉ cho từng quốc gia.

Shopify chọn lối đơn giản hơn: hai dòng địa chỉ nhập tự do với giới hạn ký tự khá rộng rãi, kèm các trường riêng cho thành phố, tỉnh và mã bưu chính. Cách này linh hoạt nhưng dữ liệu thu về ít cấu trúc hơn, việc validate và chuẩn hóa địa chỉ vì thế cũng vất vả hơn.

Với các dự án nhỏ, giải pháp thiết thực là dùng API chuẩn hóa địa chỉ như Google Places Autocomplete: người dùng gõ vài chữ đầu, API gợi ý ngay địa chỉ đầy đủ và có cấu trúc. Vừa giảm lỗi nhập liệu, vừa bảo đảm định dạng chuẩn, trải nghiệm lại tốt hơn. Như đã bàn trong bài Thiết kế độ dài văn bản đa ngôn ngữ, xử lý địa chỉ quốc tế là một trong những phần hóc búa nhất của thiết kế form đa ngôn ngữ.

Xu hướng tương lai - Địa chỉ số và mã hóa vị trí

Hệ thống what3words chia toàn bộ bề mặt Trái Đất thành các ô vuông 3 m x 3 m và gán cho mỗi ô một "địa chỉ" gồm 3 từ. Chẳng hạn "filled.count.soap" trỏ đến một vị trí cụ thể với độ chính xác 3 m. Chuỗi này chỉ dài 17 ký tự nhưng định vị chính xác hơn bất kỳ địa chỉ truyền thống nào.

Plus Codes của Google (ví dụ dạng rút gọn "8Q7X+MR Tokyo") cũng là một hệ thống mã hóa vị trí ngắn gọn: một mã đầy đủ chỉ 10-11 ký tự đã khoanh được vị trí trong phạm vi khoảng 14 m x 14 m. Những hệ thống kiểu này đặc biệt hữu ích ở nơi không có địa chỉ truyền thống - vùng nông thôn hẻo lánh, khu định cư tự phát, hay những quốc gia chưa xây xong hệ thống địa chỉ.

Dù vậy, địa chỉ truyền thống sẽ chưa biến mất sớm đâu. Con người vẫn cần một địa chỉ đọc được để trao đổi với nhau, và mạng lưới bưu chính toàn cầu vẫn vận hành trên địa chỉ dạng chữ. Bài toán của nhà phát triển là đỡ được cả hai trong cùng một form nhập liệu: địa chỉ truyền thống để tương thích ngược, mã vị trí để có độ chính xác cao.

Chia sẻ bài viết này