本人自己写出的实现代码,如果有更好的实现方式,希望大家能回复下,共同进步吧。
一、需要实现的功能
1、只能输入数字或者英文
2、最多输入16位
3、每输入4位自动加一个空格
4、删除空格后的第一个的数字或字母的时候,自动把空格删除
5、输入内容,文本框后面会出现关闭图标
先按照这个功能写下实现代码:
我这里使用React Native 编译成的h5页面,没有控制软键盘的弹出。
我这里使用的是普通的input标签,没有用TextInput。
我发现TextInput控制的软键盘类型并不能符合我这里的输入功能,如果只是纯数字的,其实用TextInput会更好些。
<View style={styles.inputCont}>
<input
id="bindInput" //为了解决手机适配问题
type="text"
maxLength="19"
style={styles.editInput}
placeholder='请输入16位密码,电子卡密码在订单内查询'
value={inputValue}
onChange={this.valueChange.bind(this, event)}
/>
{inputValue.length > 0 && (
<Image //这里是关闭的图标
style={styles.close}
source={inputClose} //图标的url引入变量
onClick={this.onDeleteCode.bind(this)}
/>