Javascript 如何在textinput中验证用户电话号码?
我有一个Javascript 如何在textinput中验证用户电话号码?,javascript,react-native,validation,Javascript,React Native,Validation,我有一个textinput,我想在它显示在textinput上之前验证用户输入 我已尝试使用regex来执行此操作,但以下代码存在问题: _onChangeHP(hp){ console.log('hp', hp) let reg = /^08[0-9]{9,}$/ if(reg.test(hp)){ this.setState({noHP:hp}) } } <TextInput value={this.state.noHP
textinput
,我想在它显示在textinput
上之前验证用户输入
我已尝试使用regex来执行此操作,但以下代码存在问题:
_onChangeHP(hp){
console.log('hp', hp)
let reg = /^08[0-9]{9,}$/
if(reg.test(hp)){
this.setState({noHP:hp})
}
}
<TextInput
value={this.state.noHP}
maxLength={13}
placeholder={'08xxxxxxxxx'}
keyboardType="numeric"
onChangeText={(text)=>this._onChangeHP(text)}
/>
\n更改hp(hp){
console.log('hp',hp)
设reg=/^08[0-9]{9,}$/
if(注册测试(hp)){
this.setState({noHP:hp})
}
}
这个。_onChangeHP(text)}
/>
\u onChangeHP()
函数逐个检查,因此regex模式
在if语句
中永远不会传递true
是否有方法验证用户输入
当用户值第一个字符串为
0
,第二个字符串为8
,其余字符串仅为数字时,我的预期结果是setState
,您可以使用模式函数,其中数字可以放在条件中
<input maxLength={13} placeholder='08xxxxxxxxx' keyboardType="numeric"
pattern="[0][8][0-9]{11}" />
你不能只用一个正则表达式
\onChangeHP('08')
_onChangeHP('01')
_onChangeHP('08222222')
功能更改hp(hp){
让regStartsWith=newregexp(“^08”、“i”);
设regAfter=/^\d+$/;
if(regStartsWith.test(hp)){//这将检查是否从08开始
if(在测试(hp子字符串(2))之后重新设置){
console.log(true)//这将检查hp是否在08之后有数字
返回true;
}
否则{
console.log(false);
返回false;
}
}
否则{
console.log(false);
返回false;
}
}
因为我的问题是关于textinput
我需要逐个检查每个字符串,当用户键入0时,检查\onChangeHP()
它将永远不会进入如果语句
,换句话说,textinput将永远返回false