如何使用 tcomb-form-native 将电子邮件验证添加到字段?
How do I add email validation to a field with tcomb-form-native?
将 tcomb-form-native 库与 react native 结合使用 - 我已将 keyboardType 设置为电子邮件地址。如何向表单添加正则表达式或电子邮件验证器?我是否必须在提交函数上执行此操作(并抛出一个特殊错误?)或者是否有一个我可以使用库设置的正则表达式验证字段?
我注意到 tcomb-validation https://github.com/gcanti/tcomb-validationlibrary 有一个 RegExp 类型字段 - 但我没有看到任何如何使用它的示例。显示的示例似乎测试字段是否为正则表达式模式,这是一个令人困惑的用例,因为您通常想要针对正则表达式模式测试字段,而不是在字段中输入正则表达式模式。
您可以使用 RegExp 检查创建自己的子类型
const Email = t.refinement(t.String, email => {
const reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/; //or any other regexp
return reg.test(email);
});
const Person = t.struct({
name: t.String,
email: Email,
});
将 tcomb-form-native 库与 react native 结合使用 - 我已将 keyboardType 设置为电子邮件地址。如何向表单添加正则表达式或电子邮件验证器?我是否必须在提交函数上执行此操作(并抛出一个特殊错误?)或者是否有一个我可以使用库设置的正则表达式验证字段?
我注意到 tcomb-validation https://github.com/gcanti/tcomb-validationlibrary 有一个 RegExp 类型字段 - 但我没有看到任何如何使用它的示例。显示的示例似乎测试字段是否为正则表达式模式,这是一个令人困惑的用例,因为您通常想要针对正则表达式模式测试字段,而不是在字段中输入正则表达式模式。
您可以使用 RegExp 检查创建自己的子类型
const Email = t.refinement(t.String, email => {
const reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/; //or any other regexp
return reg.test(email);
});
const Person = t.struct({
name: t.String,
email: Email,
});