vant的输入框组件field,默认的type类型只支持tel、digit、number、textarea、password等,实际还有其他场景需要自定义。比如:有一个英文名输入框,只能支持字母和空格,且输入小写字母,自动变成大写,可以这样做。
template:
<van-field label=‘英文名’ v-model=‘enName’ type=‘text’ input-align=‘right’ :formatter=‘nameFormat’ @onBlur=‘enNameBlur’ />
methods:
nameFormat(res){ res=res.replace(/[^A-Z]/g,ele=>{ if(/[a-z]/.test(ele)){ return ele.toUpperCace() }else if(/ /.test(ele)){ return ‘ ‘ }else{ return ‘’ } }) //中间只能有一个空格 res=res.replace(/ +/,’ ‘) //解决苹果中文特殊空格 res=res.replace(String.formCharCode(8198),’’) return res }