Skip to content

Commit ee71573

Browse files
author
zhoulixiang
committed
fix: 修复 multiple 和 surname 一同使用的情景
1 parent 5df7980 commit ee71573

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

lib/core/pinyin/handle.ts

+11-5
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,17 @@ type GetMultiplePinyin = (
134134
const getMultiplePinyin: GetMultiplePinyin = (word, mode = 'normal') => {
135135
const wordCode = word.charCodeAt(0);
136136
const customMultpileDict = getCustomMultpileDict();
137-
const pinyin =
138-
customMultpileDict[wordCode] ||
139-
(mode === 'surname' ? Surnames[word] : '') ||
140-
DICT1[wordCode] ||
141-
'';
137+
let pinyin = DICT1[wordCode] || '';
138+
if (customMultpileDict[wordCode]) {
139+
pinyin = customMultpileDict[wordCode];
140+
} else if (mode === 'surname') {
141+
const surnamePinyin = Surnames[word];
142+
pinyin = [
143+
surnamePinyin,
144+
pinyin.split(' ').filter(py => py !== surnamePinyin),
145+
].join(' ');
146+
}
147+
142148
if (pinyin) {
143149
return pinyin.split(' ').map((value) => ({
144150
origin: word,

test/multiple.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ describe('multiple', () => {
3434

3535
it('[multiple]multiple+surname同时使用', () => {
3636
const result = pinyin('能', { mode: 'surname', multiple: true });
37-
expect(result).to.be.equal('nài');
37+
expect(result).to.be.equal('nài néng');
3838
});
3939

4040
it('[multiple]base', () => {

0 commit comments

Comments
 (0)