[Angular Material] Input 配 AutoComplete 配reactive form 及顯示和回傳達成不同值做法
Input 配 AutoComplete 配reactive form
及顯示和回傳達成不同值
做法留存
HTML
<mat-form-field style="width:50%">
<input
matInput
placeholder="國籍"
[matAutocomplete]="countries"
[formControl]="bci0180Control"
/>
</mat-form-field>
<mat-autocomplete
#countries="matAutocomplete"
[displayWith]="displayCountry"
>
<mat-option
*ngFor="let country of filteredOptions | async"
[value]="country"
>
{{ country.ename }} /
{{ country.cname }}
</mat-option>
</mat-autocomplete>
要留意
1. [matAutocomplete] 的對應
2. [formControl] 的對應
3. [divplayWith] 的對應
4. [value] 要回傳的東西
5. *ngFor 的內容
TS
export interface CountryInfo {
ename: string;
cname: string;
code: string;
}
替JSON格式賦予強型別所以做interface
BCIClientSideFormGroup: FormGroup = this.formDataService.serviceFormGroup.get(
'counterbci',
) as FormGroup;
設定 reactive Form
// 國家下拉選單
countries$: CountryInfo[] = [];
filteredOptions: Observable<CountryInfo[]>;
bci0180Control = new FormControl();
constructor(
private fb: FormBuilder,
private formDataService: FormDataService,
private http: HttpClient,
) {}
命名變數及相關引入
ngOnInit() {
// 抓國家JSON檔
this.http
.get<CountryInfo[]>('./../../assets/country/countries.json')
.subscribe(x => {
this.countries$ = x;
});
// 當值改變時連動
this.filteredOptions = this.bci0180Control.valueChanges.pipe(
startWith(''),
map(value =>
typeof value === 'string' ? value : value.ename + value.cname,
),
map(name => (name ? this._filter(name) : this.countries$.slice())),
);
// 將所選的值連動並設定回去真的要傳回form的欄位
const bci0180Control = this.BCIClientSideFormGroup.get(
'bci0180',
) as FormControl;
this.bci0180Control.valueChanges.subscribe(val => {
console.log('bci0180Control', val);
bci0180Control.setValue(val.code);
});
}
displayCountry(country?: CountryInfo): string | undefined {
return country ? country.ename + ' / ' + country.cname : undefined;
}
private _filter(enamecname: string): CountryInfo[] {
const filterValue = enamecname.toLowerCase();
return this.countries$.filter(
country =>
(country.ename + country.cname).toLowerCase().indexOf(filterValue) ===
0,
);
}
然後再去比對內容做搜尋
但是會有bug 因為只能用英文搜尋
希望中文或是英文都可以搜尋
所以參考了這個程式碼
本文链接:https://blog.csdn.net/LY9457/article/details/88857457
// 驗證是否是中文
var pattern = new RegExp("[\u4E00-\u9FA5]+");
var str = "中文";
if (pattern.test(str)) {
alert("該字串是中文");
}
// 驗證是否是英文
var pattern2 = new RegExp("[A-Za-z]+");
var str2 = "abcdefsgaaweg";
if (pattern2.test(str2)) {
alert("該字串是英文");
}
// 驗證是否是數字
var pattern3 = new RegExp("[0-9]+");
var str3 = "234234";
if (pattern3.test(str3)) {
alert("該字串是數字");
}
// ————————————————
// 版权声明:本文为CSDN博主「Ly的博客」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
// 原文链接:https://blog.csdn.net/LY9457/article/details/88857457
然後把比對的方法改良
private _filter(cnameename: string): CountryInfo[] {
const filterValue = cnameename.toLowerCase();
// 驗證是否輸入中文
const pattern = new RegExp('[\u4E00-\u9FA5]+');
const str = filterValue;
if (pattern.test(str)) {
// 回傳中文比對字串
return this.countries$.filter(
country =>
(country.cname + country.ename).toLowerCase().indexOf(filterValue) ===
0,
);
}
// 驗證是否輸入英文
const pattern2 = new RegExp('[A-Za-z]+');
const str2 = filterValue;
if (pattern2.test(str2)) {
// 回傳英文比對字串
return this.countries$.filter(
country =>
(country.ename + country.cname).toLowerCase().indexOf(filterValue) ===
0,
);
}
}
JSON
[
{ "ename": "Afghanistan", "cname": "阿富汗", "code": "AF" },
{ "ename": "Åland Islands", "cname": "奧蘭", "code": "AX" },
{ "ename": "Albania", "cname": "阿爾巴尼亞", "code": "AL" },
{ "ename": "Algeria", "cname": "阿爾及利亞", "code": "DZ" },
{ "ename": "American Samoa", "cname": "美屬薩摩亞", "code": "AS" },
{ "ename": "Andorra", "cname": "安道爾", "code": "AD" },
{ "ename": "Angola", "cname": "安哥拉", "code": "AO" },
{ "ename": "Anguilla", "cname": "安圭拉", "code": "AI" },
{ "ename": "Antarctica", "cname": "南極洲", "code": "AQ" },
{ "ename": "Antigua and Barbuda", "cname": "安地卡及巴布達", "code": "AG" },
{ "ename": "Argentina", "cname": "阿根廷", "code": "AR" },
{ "ename": "Armenia", "cname": "亞美尼亞", "code": "AM" },
{ "ename": "Aruba", "cname": "阿魯巴", "code": "AW" },
{ "ename": "Australia", "cname": "澳大利亞", "code": "AU" },
{ "ename": "Austria", "cname": "奧地利", "code": "AT" },
{ "ename": "Azerbaijan", "cname": "亞塞拜然", "code": "AZ" },
{ "ename": "Bahamas", "cname": "巴哈馬", "code": "BS" },
{ "ename": "Bahrain", "cname": "巴林", "code": "BH" },
{ "ename": "Bangladesh", "cname": "孟加拉國", "code": "BD" },
{ "ename": "Barbados", "cname": "巴貝多", "code": "BB" },
{ "ename": "Belarus", "cname": "白俄羅斯", "code": "BY" },
{ "ename": "Belgium", "cname": "比利時", "code": "BE" },
{ "ename": "Belize", "cname": "貝里斯", "code": "BZ" },
{ "ename": "Benin", "cname": "貝南", "code": "BJ" },
{ "ename": "Bermuda", "cname": "百慕達", "code": "BM" },
{ "ename": "Bhutan", "cname": "不丹", "code": "BT" },
{
"ename": "Bolivia (Plurinational State of)",
"cname": "玻利維亞",
"code": "BO"
},
{
"ename": "Bonaire, Sint Eustatius and Saba",
"cname": "荷蘭加勒比區",
"code": "BQ"
},
{
"ename": "Bosnia and Herzegovina",
"cname": "波士尼亞與赫塞哥維納",
"code": "BA"
},
{ "ename": "Botswana", "cname": "波札那", "code": "BW" },
{ "ename": "Bouvet Island", "cname": "布韋島", "code": "BV" },
{ "ename": "Brazil", "cname": "巴西", "code": "BR" },
{
"ename": "British Indian Ocean Territory",
"cname": "英屬印度洋領地",
"code": "IO"
},
{ "ename": "Brunei Darussalam", "cname": "汶萊", "code": "BN" },
{ "ename": "Bulgaria", "cname": "保加利亞", "code": "BG" },
{ "ename": "Burkina Faso", "cname": "布吉納法索", "code": "BF" },
{ "ename": "Burundi", "cname": "蒲隆地", "code": "BI" },
{ "ename": "Cabo Verde", "cname": "維德角", "code": "CV" },
{ "ename": "Cambodia", "cname": "柬埔寨", "code": "KH" },
{ "ename": "Cameroon", "cname": "喀麥隆", "code": "CM" },
{ "ename": "Canada", "cname": "加拿大", "code": "CA" },
{ "ename": "Cayman Islands", "cname": "開曼群島", "code": "KY" },
{ "ename": "Central African Republic", "cname": "中非", "code": "CF" },
{ "ename": "Chad", "cname": "查德", "code": "TD" },
{ "ename": "Chile", "cname": "智利", "code": "CL" },
{ "ename": "China", "cname": "中國", "code": "CN" },
{ "ename": "Christmas Island", "cname": "聖誕島", "code": "CX" },
{
"ename": "Cocos (Keeling) Islands",
"cname": "科科斯(基林)群島",
"code": "CC"
},
{ "ename": "Colombia", "cname": "哥倫比亞", "code": "CO" },
{ "ename": "Comoros", "cname": "葛摩", "code": "KM" },
{ "ename": "Congo", "cname": "剛果", "code": "CG" },
{
"ename": "Congo (Democratic Republic of the)",
"cname": "民主剛果",
"code": "CD"
},
{ "ename": "Cook Islands", "cname": "庫克群島", "code": "CK" },
{ "ename": "Costa Rica", "cname": "哥斯大黎加", "code": "CR" },
{ "ename": "Côte d'Ivoire", "cname": "象牙海岸", "code": "CI" },
{ "ename": "Croatia", "cname": "克羅埃西亞", "code": "HR" },
{ "ename": "Cuba", "cname": "古巴", "code": "CU" },
{ "ename": "Curacao !Curaçao", "cname": "庫拉索", "code": "CW" },
{ "ename": "Cyprus", "cname": "賽普勒斯", "code": "CY" },
{ "ename": "Czechia", "cname": "捷克", "code": "CZ" },
{ "ename": "Denmark", "cname": "丹麥", "code": "DK" },
{ "ename": "Djibouti", "cname": "吉布地", "code": "DJ" },
{ "ename": "Dominica", "cname": "多米尼克", "code": "DM" },
{ "ename": "Dominican Republic", "cname": "多明尼加", "code": "DO" },
{ "ename": "Ecuador", "cname": "厄瓜多", "code": "EC" },
{ "ename": "Egypt", "cname": "埃及", "code": "EG" },
{ "ename": "El Salvador", "cname": "薩爾瓦多", "code": "SV" },
{ "ename": "Equatorial Guinea", "cname": "赤道幾內亞", "code": "GQ" },
{ "ename": "Eritrea", "cname": "厄利垂亞", "code": "ER" },
{ "ename": "Estonia", "cname": "愛沙尼亞", "code": "EE" },
{ "ename": "Eswatini", "cname": "史瓦帝尼", "code": "SZ" },
{ "ename": "Ethiopia", "cname": "衣索比亞", "code": "ET" },
{
"ename": "Falkland Islands (Malvinas)",
"cname": "福克蘭群島",
"code": "FK"
},
{ "ename": "Faroe Islands", "cname": "法羅群島", "code": "FO" },
{ "ename": "Fiji", "cname": "斐濟", "code": "FJ" },
{ "ename": "Finland", "cname": "芬蘭", "code": "FI" },
{ "ename": "France", "cname": "法國", "code": "FR" },
{ "ename": "French Guiana", "cname": "法屬圭亞那", "code": "GF" },
{ "ename": "French Polynesia", "cname": "法屬玻里尼西亞", "code": "PF" },
{
"ename": "French Southern Territories",
"cname": "法屬南方和南極洲領地",
"code": "TF"
},
{ "ename": "Gabon", "cname": "加彭", "code": "GA" },
{ "ename": "Gambia", "cname": "甘比亞", "code": "GM" },
{ "ename": "Georgia", "cname": "喬治亞", "code": "GE" },
{ "ename": "Germany", "cname": "德國", "code": "DE" },
{ "ename": "Ghana", "cname": "加納", "code": "GH" },
{ "ename": "Gibraltar", "cname": "直布羅陀", "code": "GI" },
{ "ename": "Greece", "cname": "希臘", "code": "GR" },
{ "ename": "Greenland", "cname": "格陵蘭", "code": "GL" },
{ "ename": "Grenada", "cname": "格瑞那達", "code": "GD" },
{ "ename": "Guadeloupe", "cname": "瓜德羅普", "code": "GP" },
{ "ename": "Guam", "cname": "關島", "code": "GU" },
{ "ename": "Guatemala", "cname": "瓜地馬拉", "code": "GT" },
{ "ename": "Guernsey", "cname": "根西", "code": "GG" },
{ "ename": "Guinea", "cname": "幾內亞", "code": "GN" },
{ "ename": "Guinea-Bissau", "cname": "幾內亞比索", "code": "GW" },
{ "ename": "Guyana", "cname": "蓋亞那", "code": "GY" },
{ "ename": "Haiti", "cname": "海地", "code": "HT" },
{
"ename": "Heard Island and McDonald Islands",
"cname": "赫德島和麥克唐納群島",
"code": "HM"
},
{ "ename": "Holy See", "cname": "梵蒂岡", "code": "VA" },
{ "ename": "Honduras", "cname": "宏都拉斯", "code": "HN" },
{ "ename": "Hong Kong", "cname": "香港", "code": "HK" },
{ "ename": "Hungary", "cname": "匈牙利", "code": "HU" },
{ "ename": "Iceland", "cname": "冰島", "code": "IS" },
{ "ename": "India", "cname": "印度", "code": "IN" },
{ "ename": "Indonesia", "cname": "印尼", "code": "ID" },
{ "ename": "Iran (Islamic Republic of)", "cname": "伊朗", "code": "IR" },
{ "ename": "Iraq", "cname": "伊拉克", "code": "IQ" },
{ "ename": "Ireland", "cname": "愛爾蘭", "code": "IE" },
{ "ename": "Isle of Man", "cname": "曼島", "code": "IM" },
{ "ename": "Israel", "cname": "以色列", "code": "IL" },
{ "ename": "Italy", "cname": "義大利", "code": "IT" },
{ "ename": "Jamaica", "cname": "牙買加", "code": "JM" },
{ "ename": "Japan", "cname": "日本", "code": "JP" },
{ "ename": "Jersey", "cname": "澤西", "code": "JE" },
{ "ename": "Jordan", "cname": "約旦", "code": "JO" },
{ "ename": "Kazakhstan", "cname": "哈薩克", "code": "KZ" },
{ "ename": "Kenya", "cname": "肯亞", "code": "KE" },
{ "ename": "Kiribati", "cname": "吉里巴斯", "code": "KI" },
{
"ename": "Korea (Democratic People's Republic of)",
"cname": "北韓",
"code": "KP"
},
{ "ename": "Korea (Republic of)", "cname": "韓國", "code": "KR" },
{ "ename": "Kuwait", "cname": "科威特", "code": "KW" },
{ "ename": "Kyrgyzstan", "cname": "吉爾吉斯", "code": "KG" },
{
"ename": "Lao People's Democratic Republic",
"cname": "寮國",
"code": "LA"
},
{ "ename": "Latvia", "cname": "拉脫維亞", "code": "LV" },
{ "ename": "Lebanon", "cname": "黎巴嫩", "code": "LB" },
{ "ename": "Lesotho", "cname": "賴索托", "code": "LS" },
{ "ename": "Liberia", "cname": "賴比瑞亞", "code": "LR" },
{ "ename": "Libya", "cname": "利比亞", "code": "LY" },
{ "ename": "Liechtenstein", "cname": "列支敦斯登", "code": "LI" },
{ "ename": "Lithuania", "cname": "立陶宛", "code": "LT" },
{ "ename": "Luxembourg", "cname": "盧森堡", "code": "LU" },
{ "ename": "Macao", "cname": "澳門", "code": "MO" },
{ "ename": "Madagascar", "cname": "馬達加斯加", "code": "MG" },
{ "ename": "Malawi", "cname": "馬拉威", "code": "MW" },
{ "ename": "Malaysia", "cname": "馬來西亞", "code": "MY" },
{ "ename": "Maldives", "cname": "馬爾地夫", "code": "MV" },
{ "ename": "Mali", "cname": "馬利", "code": "ML" },
{ "ename": "Malta", "cname": "馬爾他", "code": "MT" },
{ "ename": "Marshall Islands", "cname": "馬紹爾群島", "code": "MH" },
{ "ename": "Martinique", "cname": "馬提尼克", "code": "MQ" },
{ "ename": "Mauritania", "cname": "茅利塔尼亞", "code": "MR" },
{ "ename": "Mauritius", "cname": "模里西斯", "code": "MU" },
{ "ename": "Mayotte", "cname": "馬約特", "code": "YT" },
{ "ename": "Mexico", "cname": "墨西哥", "code": "MX" },
{
"ename": "Micronesia (Federated States of)",
"cname": "密克羅尼西亞聯邦",
"code": "FM"
},
{ "ename": "Moldova (Republic of)", "cname": "摩爾多瓦", "code": "MD" },
{ "ename": "Monaco", "cname": "摩納哥", "code": "MC" },
{ "ename": "Mongolia", "cname": "蒙古國", "code": "MN" },
{ "ename": "Montenegro", "cname": "蒙特內哥羅", "code": "ME" },
{ "ename": "Montserrat", "cname": "蒙特塞拉特", "code": "MS" },
{ "ename": "Morocco", "cname": "摩洛哥", "code": "MA" },
{ "ename": "Mozambique", "cname": "莫三比克", "code": "MZ" },
{ "ename": "Myanmar", "cname": "緬甸", "code": "MM" },
{ "ename": "Namibia", "cname": "納米比亞", "code": "NA" },
{ "ename": "Nauru", "cname": "諾魯", "code": "NR" },
{ "ename": "Nepal", "cname": "尼泊爾", "code": "NP" },
{ "ename": "Netherlands", "cname": "荷蘭", "code": "NL" },
{ "ename": "New Caledonia", "cname": "新喀里多尼亞", "code": "NC" },
{ "ename": "New Zealand", "cname": "紐西蘭", "code": "NZ" },
{ "ename": "Nicaragua", "cname": "尼加拉瓜", "code": "NI" },
{ "ename": "Niger", "cname": "尼日", "code": "NE" },
{ "ename": "Nigeria", "cname": "奈及利亞", "code": "NG" },
{ "ename": "Niue", "cname": "紐埃", "code": "NU" },
{ "ename": "Norfolk Island", "cname": "諾福克島", "code": "NF" },
{ "ename": "North Macedonia", "cname": "北馬其頓", "code": "MK" },
{
"ename": "Northern Mariana Islands",
"cname": "北馬里亞納群島",
"code": "MP"
},
{ "ename": "Norway", "cname": "挪威", "code": "NO" },
{ "ename": "Oman", "cname": "阿曼", "code": "OM" },
{ "ename": "Pakistan", "cname": "巴基斯坦", "code": "PK" },
{ "ename": "Palau", "cname": "帛琉", "code": "PW" },
{ "ename": "Palestine, State of", "cname": "巴勒斯坦", "code": "PS" },
{ "ename": "Panama", "cname": "巴拿馬", "code": "PA" },
{ "ename": "Papua New Guinea", "cname": "巴布亞紐幾內亞", "code": "PG" },
{ "ename": "Paraguay", "cname": "巴拉圭", "code": "PY" },
{ "ename": "Peru", "cname": "秘魯", "code": "PE" },
{ "ename": "Philippines", "cname": "菲律賓", "code": "PH" },
{ "ename": "Pitcairn", "cname": "皮特肯群島", "code": "PN" },
{ "ename": "Poland", "cname": "波蘭", "code": "PL" },
{ "ename": "Portugal", "cname": "葡萄牙", "code": "PT" },
{ "ename": "Puerto Rico", "cname": "波多黎各", "code": "PR" },
{ "ename": "Qatar", "cname": "卡達", "code": "QA" },
{ "ename": "Réunion", "cname": "留尼旺", "code": "RE" },
{ "ename": "Romania", "cname": "羅馬尼亞", "code": "RO" },
{ "ename": "Russian Federation", "cname": "俄羅斯", "code": "RU" },
{ "ename": "Rwanda", "cname": "盧安達", "code": "RW" },
{ "ename": "Saint Barthélemy", "cname": "聖巴泰勒米", "code": "BL" },
{
"ename": "Saint Helena, Ascension and Tristan da Cunha",
"cname": "聖赫倫那、阿森松和特里斯坦-達庫尼亞",
"code": "SH"
},
{
"ename": "Saint Kitts and Nevis",
"cname": "聖克里斯多福及尼維斯",
"code": "KN"
},
{ "ename": "Saint Lucia", "cname": "聖露西亞", "code": "LC" },
{
"ename": "Saint Martin (French part)",
"cname": "法屬聖馬丁",
"code": "MF"
},
{
"ename": "Saint Pierre and Miquelon",
"cname": "聖皮埃爾和密克隆",
"code": "PM"
},
{
"ename": "Saint Vincent and the Grenadines",
"cname": "聖文森及格瑞那丁",
"code": "VC"
},
{ "ename": "Samoa", "cname": "薩摩亞", "code": "WS" },
{ "ename": "San Marino", "cname": "聖馬利諾", "code": "SM" },
{ "ename": "Sao Tome and Principe", "cname": "聖多美普林西比", "code": "ST" },
{ "ename": "Saudi Arabia", "cname": "沙烏地阿拉伯", "code": "SA" },
{ "ename": "Senegal", "cname": "塞內加爾", "code": "SN" },
{ "ename": "Serbia", "cname": "塞爾維亞", "code": "RS" },
{ "ename": "Seychelles", "cname": "塞席爾", "code": "SC" },
{ "ename": "Sierra Leone", "cname": "獅子山", "code": "SL" },
{ "ename": "Singapore", "cname": "新加坡", "code": "SG" },
{ "ename": "Sint Maarten (Dutch part)", "cname": "聖馬丁", "code": "SX" },
{ "ename": "Slovakia", "cname": "斯洛伐克", "code": "SK" },
{ "ename": "Slovenia", "cname": "斯洛維尼亞", "code": "SI" },
{ "ename": "Solomon Islands", "cname": "索羅門群島", "code": "SB" },
{ "ename": "Somalia", "cname": "索馬利亞", "code": "SO" },
{ "ename": "South Africa", "cname": "南非", "code": "ZA" },
{
"ename": "South Georgia and the South Sandwich Islands",
"cname": "南喬治亞和南桑威奇群島",
"code": "GS"
},
{ "ename": "South Sudan", "cname": "南蘇丹", "code": "SS" },
{ "ename": "Spain", "cname": "西班牙", "code": "ES" },
{ "ename": "Sri Lanka", "cname": "斯里蘭卡", "code": "LK" },
{ "ename": "Sudan", "cname": "蘇丹", "code": "SD" },
{ "ename": "Suriname", "cname": "蘇利南", "code": "SR" },
{
"ename": "Svalbard and Jan Mayen",
"cname": "斯瓦爾巴和揚馬延",
"code": "SJ"
},
{ "ename": "Sweden", "cname": "瑞典", "code": "SE" },
{ "ename": "Switzerland", "cname": "瑞士", "code": "CH" },
{ "ename": "Syrian Arab Republic", "cname": "敘利亞", "code": "SY" },
{
"ename": "Taiwan, Province of China[note 1]",
"cname": "中國台灣省",
"code": "TW"
},
{ "ename": "Tajikistan", "cname": "塔吉克", "code": "TJ" },
{
"ename": "Tanzania, United Republic of",
"cname": "坦尚尼亞",
"code": "TZ"
},
{ "ename": "Thailand", "cname": "泰國", "code": "TH" },
{ "ename": "Timor-Leste", "cname": "東帝汶", "code": "TL" },
{ "ename": "Togo", "cname": "多哥", "code": "TG" },
{ "ename": "Tokelau", "cname": "托克勞", "code": "TK" },
{ "ename": "Tonga", "cname": "東加", "code": "TO" },
{ "ename": "Trinidad and Tobago", "cname": "千里達及托巴哥", "code": "TT" },
{ "ename": "Tunisia", "cname": "突尼西亞", "code": "TN" },
{ "ename": "Turkey", "cname": "土耳其", "code": "TR" },
{ "ename": "Turkmenistan", "cname": "土庫曼", "code": "TM" },
{
"ename": "Turks and Caicos Islands",
"cname": "特克斯與凱科斯群島",
"code": "TC"
},
{ "ename": "Tuvalu", "cname": "吐瓦魯", "code": "TV" },
{ "ename": "Uganda", "cname": "烏干達", "code": "UG" },
{ "ename": "Ukraine", "cname": "烏克蘭", "code": "UA" },
{ "ename": "United Arab Emirates", "cname": "阿聯", "code": "AE" },
{
"ename": "United Kingdom of Great Britain and Northern Ireland",
"cname": "英國",
"code": "GB"
},
{
"ename": "United States Minor Outlying Islands",
"cname": "美國本土外小島嶼",
"code": "UM"
},
{ "ename": "United States of America", "cname": "美國", "code": "US" },
{ "ename": "Uruguay", "cname": "烏拉圭", "code": "UY" },
{ "ename": "Uzbekistan", "cname": "烏茲別克", "code": "UZ" },
{ "ename": "Vanuatu", "cname": "萬那杜", "code": "VU" },
{
"ename": "Venezuela (Bolivarian Republic of)",
"cname": "委內瑞拉",
"code": "VE"
},
{ "ename": "Viet Nam", "cname": "越南", "code": "VN" },
{
"ename": "Virgin Islands (British)",
"cname": "英屬維京群島",
"code": "VG"
},
{ "ename": "Virgin Islands (U.S.)", "cname": "美屬維京群島", "code": "VI" },
{ "ename": "Wallis and Futuna", "cname": "瓦利斯和富圖納", "code": "WF" },
{ "ename": "Western Sahara", "cname": "西撒哈拉", "code": "EH" },
{ "ename": "Yemen", "cname": "葉門", "code": "YE" },
{ "ename": "Zambia", "cname": "尚比亞", "code": "ZM" },
{ "ename": "Zimbabwe", "cname": "辛巴威", "code": "ZW" }
]
留言
張貼留言