我正在创建一个表单验证,其中有两个条件要验证。这是一个很好的方式使用开关大小写如果其他语句?或者这是什么令人皱眉的东西?如果是这样的话,有什么更好的方法可以不使用外部库来处理这个问题,谢谢。
代码:
const validate = ( name, value) => {
switch (name) {
case "user_name":
if (!value) {
setErrors({ ...errors, user_name: "Please, submit required data" });
} else if (!new RegExp(/^[A-Za-z0-9]+$/).test(value)) {
setErrors({
...errors,
user_name: "Please, provide the data of indicated type(no special characters)",
});
} else {
let newObj = omit(errors, "user_name");
setErrors({ ...newObj });
}
break;
.....发布于 2022-04-26 09:34:38
它不是很容易读,所以我不会说它是最好的方式,但它肯定不是最坏的。你可以试试这样的东西。
const validate = (name, value) => {
if (!value) {
setErrors({ ...errors, [name]: "Please, submit required data" })
return
}
switch (name) {
case "user_name": {
if (!new RegExp(/^[A-Za-z0-9]+$/).test(value)) {
setErrors({
...errors,
user_name: "Please, provide the data of indicated type(no special characters)"
})
return
}
}
}
const newObj = omit(errors, name)
setErrors({ ...newObj })
}https://stackoverflow.com/questions/72011362
复制相似问题