正則生成形如xxx xxxx xxxx格式的手機號碼(中間數字自動追加空格):
監聽輸入事件,對輸入的值用正則處理:
1.過濾輸入的字符,去掉非數字
var a = '13177wsdrfs778888sdfasdf999asdfasdfasdf9' a.replace(/\D+/g, '')
// => 131777788889999
2.控制輸入字符的位數(手機號位數為11位)
var a = '131777788889999' a.replace(/(\d{1,11})(\d*)/, ($, $1)=>$1) //=> 13177778888
3.以xxx xxxx xxxx的格式處理字符串
var a = '13177778888' a.replace(/(\d{3})(\d*)/, ($, $1, $2)=> $1 + ' ' + $2.replace(/\d{4}|\d+/g, $=> $ + ' ').trim()).trim() // => 131 7777 8888
第三步稍微復雜一點,$1匹配的前三位數字,單獨拿出來處理(后面加個空格),$2是后8位字符,每隔4位追加空格,最后用trim()去掉最后的空格
最后將以上3步合在一起:
var a = '13177wsdrfs778888sdfasdf999asdfasdfasdf9'; a.replace(/\D+/g, '') .replace(/(\d{1,11})(\d*)/, ($, $1) => $1) .replace(/(\d{3})(\d*)/, ($, $1, $2) => $1 + ' ' + $2.replace(/\d{4}|\d+/g, $ => $ + ' ').trim()).trim() // => 131 7777 8888
腳踏實地行,海闊天空飛