javascript - react native 自定义表单验证

标签 javascript reactjs react-native

我创建了一个在提交表单时运行的自定义验证方法,因为我发现没有有用的、易于实现的 React Native 验证库,我的验证方法返回 false 并且代码继续执行,它没有不要卡住。

这是验证和登录方法

_validateEmail = (email) => {
    let isEmail = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return isEmail.test(String(email).toLowerCase());
  }

_login = async () => {

    let user = this.state;

    console.log('before validate');

    await this._validateEmail(user.email);

    console.log('after validate');
}

即使写了错误的电子邮件地址,我的终端也会不断记录验证后的信息,如何编写自定义验证方法来设置每次单击表单时显示还是隐藏错误消息的状态?

PS:是否有一个简单的验证库可用于此?

最佳答案

一般来说,您不需要自己进行电子邮件验证,几乎每个具有用户输入组件的 UI 组件库都已经解决了此任务。

现在,假设您正在使用 React Native TextInput组件:

  • 您必须设置 textContentTypeemailAddress ,它会自动验证您输入的上述内容类型,如下所示 <TextInput textContentType='emailAddress' />

  • 之后,这将使用 onEndEditing TextInput 事件,用于在输入有效时更新状态

关于javascript - react native 自定义表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52183678/

相关文章:

javascript - 遍历数据库子项并显示每个子项

javascript - ReactJS-单选按钮 "onClick"事件未触发

javascript - JavaScript 中的对象检测和跟踪

javascript - 在发布表单之前在输入文本框中显示日期?

javascript - 获取单词和行尾之间的文本

reactjs - 在 useState Hook 中对状态使用类引用

javascript - 多个页面的 React-Redux 状态形状

javascript - 当 reducer 函数依赖于组件 prop 时,传递给 useReducer 钩子(Hook)的 Reducer 函数会针对一次调度调用执行多次

javascript - react native map 执行任务 ':react-native-maps:checkDebugManifest'失败

javascript - 组件不更新 Prop 更新