diff --git a/packages/components/button/__tests__/button.spec.tsx b/packages/components/button/__tests__/button.spec.tsx index 0b5efd5e47..327163b54b 100644 --- a/packages/components/button/__tests__/button.spec.tsx +++ b/packages/components/button/__tests__/button.spec.tsx @@ -206,4 +206,19 @@ describe('Button Group', () => { 'el-button__text--expand' ) }) + + it('add space between two Chinese characters even if there is whitespace at both ends', async () => { + const wrapper = mount(Button, { + slots: { + default: ' 中文 ', + }, + props: { + autoInsertSpace: true, + }, + }) + expect(wrapper.find('.el-button span').text()).toBe('中文') + expect(wrapper.find('.el-button span').classes()).toContain( + 'el-button__text--expand' + ) + }) }) diff --git a/packages/components/button/src/button.vue b/packages/components/button/src/button.vue index 5e68dca2c7..8916a29dd1 100644 --- a/packages/components/button/src/button.vue +++ b/packages/components/button/src/button.vue @@ -77,8 +77,8 @@ const shouldAddSpace = computed(() => { if (autoInsertSpace.value && defaultSlot?.length === 1) { const slot = defaultSlot[0] if (slot?.type === Text) { - const text = slot.children - return /^\p{Unified_Ideograph}{2}$/u.test(text as string) + const text = slot.children as string + return /^\p{Unified_Ideograph}{2}$/u.test(text.trim()) } } return false