一、身份证号分段<-基于react->
//dom
<input
placeholder="请输入开户身份证号"
maxLength={21}
onChange={onChangeIdcard}
value={idcard}
>
</input>
//maxLength为(18+3个空格=21)
//react.js
const [idcard,setIdcard] = useState("");
function onChangeIdcard(e){
let value = e.replace(/\D/g,'').slice(0,18);//去除空格
let valLength=value.length
switch (true) {
case valLength>6&&valLength<11:
value=`${value.slice(0,6)} ${value.slice(6)}`
break;
case valLength>10&&valLength<15:
value=`${value.slice(0,6)} ${value.slice(6,10)} ${value.slice(10)}`
break;
case valLength>14:
value=`${value.slice(0,6)} ${value.slice(6,10)} ${value.slice(10,14)} ${value.slice(14)}`
break;
default:
break;
}
setIdcard(value);
}
运行截图:
二、银行卡分段:
var a='8888888888888888'
console.log(a.replace(/\D/g, '').replace(/(....)(?=.)/g, '$1 '))
//8888 8888 8888 8888
三、手机号分段:<-基于react->
//dom
<input
placeholder="请输入手机号"
maxLength={13}
onChange={onChangePhone}
value={phone}
>
</input>
//maxLength为(18+3个空格=21)
//react.js
const [phone,setPhone] = useState("");
function onChangePhone(e){
let value = e.replace(/\D/g,'').slice(0,11);//去除空格
let valLength=value.length
switch (true) {
case valLength>3&&valLength<8:
value=`${value.slice(0,3)} ${value.slice(3)}`
break;
case valLength>= 8:
value=`${value.substr(0, 3)} ${value.substr(3, 4)} ${value..substr(7)}`
break;
default:
break;
}
setPhone(value);
}
运行截图: