gpt4 book ai didi

javascript - 是的,验证表单字段是否以其他输入字段的值开头

转载 作者:行者123 更新时间:2023-12-04 08:33:21 26 4
gpt4 key购买 nike

我的表单中有 2 个字段,比如 carriercode 和 billnum,这里我需要验证号码应该始终以 carriercode 的值作为前缀,例如,如果 carriercode=ABCD blnum 应该是 ABCD 后跟任何charter 可以是字符串或数字。

return Yup.object({
carriercode: Yup.string().required(requiredMessage).min(4,"length should be 4").matches(/^[a-zA-Z0-9-]+$/,"Can not contain special characters like ),(,@ etc."),
blnum: Yup.string().required(requiredMessage) //validate if blnum starts with carriercode

})
}

有什么方法可以使用 yup 验证来实现这一点,为了简单起见,我需要在 yup 中使用类似 startsWith/indexOf 的功能。

最佳答案

test 方法可以是其中之一。在 test 方法中,您可以使用 this.parent['carriercode'] 访问其他字段(此处为 carriercode)。只需像这样制作一个自定义验证器:

Yup.object({
carriercode: Yup.string().required(requiredMessage).min(4, "length should be 4").matches(/^[a-zA-Z0-9-]+$/, "Can not contain special characters like ),(,@ etc."),
blnum: Yup.string()
.required("Should be the prefix of carriercode") //validate if blnum starts with carriercode
.test("Check prefix", function () {
let carriercode = this.parent["carriercode"];
let blnum = this.parent["blnum"];
// console.log(carriercode, blnum);
if (carriercode && blnum) {
return blnum.startsWith(carriercode) ? true : false;
}
})
})

关于javascript - 是的,验证表单字段是否以其他输入字段的值开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64924736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com