Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Email Validation (React Native). Returning the result as 'invalid' for all the entries

I am trying to validate a users email, by checking it against an expression. But the result i am getting is invalid for all the entries.

UPDATED CODE

class dummytest extends Component{    constructor(props){     super(props);     this.state = {                 email :'',                 validated: false ,                  }   };  go = () => {            const reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;            if (reg.test(this.state.email) === true){                alert( valid);            }            else{                alert();            }  }   render(){        return(          <View style={{alignSelf:'center',marginTop:100}}>               <TextInput autoCapitalize="none" autoCorrect={false} style={{height:20,width:200,backgroundColor:'blue'}} value={this.setState.email}/>                <Button onPress={this.go.bind(this)}>                  <Text> GO </Text>               </Button>           </View>         );     } } 
like image 713
Avikrit Khati Avatar asked Apr 28 '17 09:04

Avikrit Khati


1 Answers

Ok I got the code working, below you can take the look for validating the email on each user input :

  1. Your function part:
validate = (text) => {   console.log(text);   let reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w\w+)+$/;   if (reg.test(text) === false) {     console.log("Email is Not Correct");     this.setState({ email: text })     return false;   }   else {     this.setState({ email: text })     console.log("Email is Correct");   } } 
  1. You TextInput Component:
<TextInput   placeholder="Email ID"   onChangeText={(text) => this.validate(text)}   value={this.state.email} /> 
like image 186
Neel Gala Avatar answered Oct 11 '22 09:10

Neel Gala