在React中开发验证功能。我是一个新手,不想在学习的同时养成任何坏习惯,所以我正在寻找关于如何清理这里的代码块的建议。
该函数检查输入字段,如果它们为空,则将适当的消息附加到数组。检查所有输入字段后,如果该数组为空,则继续提交表单。如果该数组包含错误消息,则该消息将显示到屏幕(未显示)
validation = (event) => {
event.preventDefault();
let errors = []
const {firstName, lastName, emailAddress, password, confirmPassword} = {...this.state}
if(firstName.length === 0) errors.push('Please provide a value for First Name');
if(lastName.length === 0) errors.push('Please provide a value for Last Name');
if(password.length === 0){
errors.push('Please provide a value for Password');
}else if(password !== confirmPassword){
errors.push('Passwords do not match');
};
if(emailAddress.length === 0) {
errors.push('Please provide a value for Email Address');
}else if(!emailRegex.test(emailAddress)){
errors.push('Invalid email address');
};
this.setState({errors: errors})
if(errors.length === 0) this.logIn()
}
logIn = () => {
console.log('good to go')
};
只是在寻找清理我的条件语句的方法,如果可能的话!谢谢
也许下面的内容就足够了。如果您提供了一个通用错误消息,如“Missing required value:
,而不是特定于字段的错误消息,则可以大大简化此操作。
您还希望进行手动检查,以确保password
===confirmpassword
,但我认为您能够解决这一问题。
const emailRegex = <your regex>;
const hasLength = val => val && val.length !== 0;
验证映射
const validators = {
firstName: {
validate: hasLength,
message: 'Please provide a value for First Name'
},
lastName: {
validate: hasLength,
message: 'Please provide a value for Last Name'
},
password: {
validate: hasLength,
message: 'Please provide a value for Password'
},
emailAddress: [{
validate: hasLength,
message: 'Please provide a value for Email Address'
},
{
validate: val => !emailRegex.test(val),
message: 'Invalid email address'
}
],
}
验证器
validation = (event) => {
event.preventDefault();
let errors = []
const state = {...this.state};
Object
.keys(state)
.forEach(key => {
let validator = validators[key];
if (!validator) return;
if (!Array.isArray(validator)) {
validator = [validator]
}
validator.forEach(v => {
if (!v.validate(state[key])) {
errors.push(v.message)
}
})
});
this.setState({errors: errors})
if (errors.length === 0) this.logIn()
}
我是一个完整的编程初学者,所以请原谅我的天真。 我想用Python制作一个程序,让我打印给定的数量的素数,其中由用户输入。我搜索了一下“for/while”循环,并做了一些修补。我运行了一个我在网上看到的程序,并修改了它来适应这个问题。代码如下: 如有任何澄清,将不胜感激。太感谢你们了!
我的简化模式如下所示: 我想找到所有叫艾伦的人。我看了这个非常相似的问题,但它发现的是团队,而不是人。我想这里也是。即使我没有persons集合,是否有返回persons的查询? 我想我可以使用引用的技术找到团队,然后撤出他们的人员。我猜是这样的: 但是还有更直接的方法,对吗?
我有一个方法,它做了相当多的验证,它正在发展失控。如果有任何关于如何最好地清理这种方法的建议,我将不胜感激。我使用的是Java 11,这个方法是spring boot微服务的一部分。
跟其它程序设计语言一样,Bash中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在[[ ]]里的表达式。 条件表达式可以包含&&和||运算符,分别对应 与 和 或 。除此之外还有很多有用的表达式。 共有两个不同的条件表达式:if和case。 基元和组合表达式 由[[ ]](sh中是[ ])包起来的表达式被称作 检测命令 或 基元。这些表达式帮助我们检测一个条件的结果。在下面的表里,为
条件语句体应该总是被大括号包围。尽管有时候你可以不使用大括号(比如,条件语句体只有一行内容),但是这样做会带来问题隐患。比如,增加一行代码时,你可能会误以为它是 if 语句体里面的。此外,更危险的是,如果把 if 后面的那行代码注释掉,之后的一行代码会成为 if 语句里的代码。 推荐: if (!error) { return success; } 不推荐: if (!error)
Jade 条件语句和使用了(-) 前缀的JavaScript语句是一致的,然后它允许你不使用圆括号,这样会看上去对设计师更友好一点, 同时要在心里记住这个表达式渲染出的是_常规_Javascript: for user in users if user.role == 'admin' p #{user.name} is an admin else p= user.name