對于微小但非常令人沮喪的問題,我們將不勝感激。我正在使用 element plus 庫開發(fā) Vue 項目。 用戶輸入:'123456789' 我需要撥打:'+998-(12) 345-67-89
Element plus 有格式化程序,但我需要使用正則表達(dá)式來制作它。不幸的是我很難讓它發(fā)揮作用。 https://element-plus.org/en-US/component/input.html#formatter
我現(xiàn)在只檢查了號碼,無法進(jìn)一步了解
<script setup> import { ref, unref } from 'vue' import { ElInput } from 'element-plus' const phoneNumber = ref('') </script> <template> <el-input v-model="phoneNumber" :formatter="(value) => value.replace(/D/g, '')" /> </template>
您可以使用以下正則表達(dá)式:
value.replace(/^\+998|\D/g, '').replace(/^(\d{1,2})(\d{1,3})?(\d{1,2})?(\d{1,2})?.*/, (m, g1, g2, g3, g4) => `+998-(${g1})` + (g2 ? `-${g2}` : '') + (g3 ? `-${g3}` : '') + (g4 ? `-${g4}` : '')))
第一個 .replace(/^\+998|\D/g, '')
刪除字符串開頭的 +998
(由成功的后續(xù)替換)和任何非數(shù)字字符,以及 replace(/^(\d{1,2})(\d{1,3})?(\d{1,2})?(\ d{1,2})?.*/, (m, g1, g2, g3, g4) => `+998-(${g1})` + (g2 ? `-${g2}` : '' ) + (g3 ? `-${g3}` : '') + (g4 ? `-${g4}` : ''))
通過添加 -
重新格式化數(shù)字> 僅在必要時在您鍵入時啟動。