diff --git a/lib/core/pinyin/handle.ts b/lib/core/pinyin/handle.ts index 4132618..fbb4eb9 100644 --- a/lib/core/pinyin/handle.ts +++ b/lib/core/pinyin/handle.ts @@ -134,11 +134,17 @@ type GetMultiplePinyin = ( const getMultiplePinyin: GetMultiplePinyin = (word, mode = 'normal') => { const wordCode = word.charCodeAt(0); const customMultpileDict = getCustomMultpileDict(); - const pinyin = - customMultpileDict[wordCode] || - (mode === 'surname' ? Surnames[word] : '') || - DICT1[wordCode] || - ''; + let pinyin = DICT1[wordCode] || ''; + if (customMultpileDict[wordCode]) { + pinyin = customMultpileDict[wordCode]; + } else if (mode === 'surname') { + const surnamePinyin = Surnames[word]; + pinyin = [ + surnamePinyin, + pinyin.split(' ').filter(py => py !== surnamePinyin), + ].join(' '); + } + if (pinyin) { return pinyin.split(' ').map((value) => ({ origin: word, diff --git a/test/multiple.test.js b/test/multiple.test.js index 5c39fc1..42af555 100644 --- a/test/multiple.test.js +++ b/test/multiple.test.js @@ -34,7 +34,7 @@ describe('multiple', () => { it('[multiple]multiple+surname同时使用', () => { const result = pinyin('能', { mode: 'surname', multiple: true }); - expect(result).to.be.equal('nài'); + expect(result).to.be.equal('nài néng'); }); it('[multiple]base', () => {