Address Line 1 与 Line 2 字段规范:单行地址的工程实践
Address Line 1 与 Line 2 字段规范
Address Line 1 / Line 2 是国际通用的地址输入设计,源自纸质表格的空间限制。
字段定义
| 字段 | 用途 | 必填 | 长度建议 |
|---|---|---|---|
| Address Line 1 | 主地址 (街道+号码) | 是 | 1-200 |
| Address Line 2 | 补充地址 (公寓/楼层) | 否 | 0-200 |
Address Line 1 包含
```
123 Main Street
456 Oak Avenue Apt 3B
789 Highway 50 N
1001 Pennsylvania Avenue NW
```
Address Line 2 包含
```
Apartment 3B
Suite 200
Floor 5
Building A
Unit 100
P.O. Box 1234
```
数据库设计
方案一:双字段
```sql
CREATE TABLE addresses (
id INT PRIMARY KEY,
address_line1 VARCHAR(200) NOT NULL,
address_line2 VARCHAR(200) DEFAULT NULL,
city VARCHAR(100) NOT NULL,
state_code CHAR(2) NOT NULL,
zip_code CHAR(5) NOT NULL,
country_code CHAR(2) DEFAULT 'US'
);
```
方案二:结构化字段
```sql
CREATE TABLE addresses (
id INT PRIMARY KEY,
street_number VARCHAR(20),
street_name VARCHAR(100),
unit_type VARCHAR(20),
unit_number VARCHAR(20),
city VARCHAR(100),
state_code CHAR(2),
zip_code CHAR(5)
);
```
表单 UX 实践
单列布局
```html
<form>
<label>Address Line 1 *</label>
<input name="address_line1" required>
<label>Address Line 2 (Optional)</label>
<input name="address_line2" placeholder="Apt, Suite, etc.">
<label>City *</label>
<input name="city" required>
<label>State *</label>
<select name="state" required>
<option value="">Select...</option>
<option value="CA">California</option>
...
</select>
<label>ZIP Code *</label>
<input name="zip_code" required>
</form>
```
双行折叠
```html
<details>
<summary>Add apartment, suite, etc.</summary>
<input name="address_line2" placeholder="Optional">
</details>
```
校验规则
```javascript
function validateAddressLines(line1, line2) {
if (!line1 || line1.trim().length === 0) {
return 'Address Line 1 is required';
}
if (line1.length > 200) {
return 'Address Line 1 too long';
}
if (line2 && line2.length > 200) {
return 'Address Line 2 too long';
}
return null;
}
```
数据展示建议
物流单
```
JANE DOE
123 MAIN ST APT 3B
SAN FRANCISCO, CA 94105
USA
```
用户中心
```
Jane Doe
123 Main St, Apt 3B
San Francisco, CA 94105
USA
```
单行紧凑
```
123 Main St, Apt 3B, San Francisco, CA 94105
```
国际化差异
| 国家 | 字段设计 |
|---|---|
| 美国 | Line 1 / Line 2 (主要) |
| 加拿大 | Line 1 / Line 2 |
| 英国 | Line 1 / Line 2 (需要 City/Postcode) |
| 日本 | 多个字段:邮编号、都道府县、市区町村、番地、建筑物名 |
| 中国 | 省/市/区/街道/详细地址 (多级) |
总结
Address Line 1 / Line 2 设计简单、灵活,但需要:
掌握这套字段设计能覆盖 90% 的国际地址场景。