2 changed files with 72 additions and 9 deletions
@ -0,0 +1,58 @@ |
|||
/** |
|||
* 傳入姓名,返回首字,複姓返回兩個字,英文返回大寫 |
|||
* @param {*} fullname |
|||
* @param {*} lang |
|||
* @returns |
|||
*/ |
|||
export function getFirstName(fullname,lang) { |
|||
let hyphenated = ['欧阳', '太史', '端木', '上官', '司马', '东方', '独孤', '南宫', '万俟', '闻人', |
|||
'夏侯', '诸葛', '尉迟', '公羊', '赫连', '澹台', '皇甫', '宗政', '濮阳', '公冶', |
|||
'太叔', '申屠', '公孙', '慕容', '仲孙', '钟离', '长孙', '宇文', '城池', '司徒', |
|||
'鲜于', '司空', '汝嫣', '闾丘', '子车', '亓官', '司寇', '巫马', '公西', '颛孙', |
|||
'壤驷', '公良', '漆雕', '乐正', '宰父', '谷梁', '拓跋', '夹谷', '轩辕', '令狐', |
|||
'段干', '百里', '呼延', '东郭', '南门', '羊舌', '微生', '公户', '公玉', '公仪', |
|||
'梁丘', '公仲', '公上', '公门', '公山', '公坚', '左丘', '公伯', '西门', '公祖', |
|||
'第五', '公乘', '贯丘', '公皙', '南荣', '东里', '东宫', '仲长', '子书', '子桑', |
|||
'即墨', '达奚', '褚师']; |
|||
if(lang=='zh-TW'){ |
|||
hyphenated = ['歐陽', '太史', '端木', '上官', '司馬', '東方', '獨孤', '南宮', '萬俟', '聞人', |
|||
'夏侯', '諸葛', '尉遲', '公羊', '赫連', '淡臺', '皇甫', '宗政', '濮陽', '公冶', |
|||
'太叔', '申屠', '公孫', '慕容', '仲孫', '鐘離', '長孫', '宇文', '城池', '司徒', |
|||
'鮮於', '司空', '汝嫣', '閭丘', '子車', '亓官', '司寇', '巫馬', '公西', '顓孫', |
|||
'壤駟', '公良', '漆雕', '樂正', '宰父', '谷梁', '拓跋', '夾谷', '軒轅', '令狐', |
|||
'段幹', '百裏', '呼延', '東郭', '南門', '羊舌', '微生', '公戶', '公玉', '公儀', |
|||
'梁丘', '公仲', '公上', '公門', '公山', '公堅', '左丘', '公伯', '西門', '公祖', |
|||
'第五', '公乘', '貫丘', '公皙', '南榮', '東裏', '東宮', '仲長', '子書', '子桑', |
|||
'即墨', '達奚', '褚師']; |
|||
} |
|||
if(fullname == undefined || fullname == null || fullname == ''){ |
|||
return ["",true]; |
|||
} |
|||
var re = /[A-Za-z]+/; |
|||
var result = fullname.search(re); |
|||
if(result>=0){ |
|||
return [fullname.substr(0, 1).toUpperCase(),false]; |
|||
} |
|||
let hyset = new Set(hyphenated); |
|||
let vLength = fullname.length; |
|||
// 前為姓,后為名
|
|||
let lastname = '', firstname = ''; |
|||
if (vLength > 2){ |
|||
var preTwoWords = fullname.substr(0, 2); |
|||
// 取名字的前兩個字,看是否在複姓庫中
|
|||
if (hyset.has(preTwoWords)){ |
|||
firstname = preTwoWords; |
|||
// lastname = fullname.substr(2);
|
|||
}else{ |
|||
firstname = fullname.substr(0, 1); |
|||
// lastname = fullname.substr(1);
|
|||
} |
|||
}else if (vLength === 2){ |
|||
// 全名只有兩個字時,前一個為姓,後一個為名
|
|||
firstname = fullname.substr(0, 1); |
|||
// lastname = fullname.substr(1);
|
|||
}else{ |
|||
firstname = fullname; |
|||
} |
|||
return [firstname,true]; |
|||
}; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue