亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

yup 驗證來驗證表單字段是否以其他輸入字段的值開頭

yup 驗證來驗證表單字段是否以其他輸入字段的值開頭

慕桂英4014372 2023-08-18 16:41:30
我的表單中有 2 個字段,即載體代碼和帳單號碼,這里我需要驗證號碼應始終以載體代碼的值作為前綴,例如,如果載體代碼=ABCD blnum 應該是 ABCD,后跟任何包機可以是字符串或數字。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.txt 中的startsWith/indexOf 功能之類的東西。
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

該test方法可以是其中之一。在方法內部,您可以使用test訪問其他字段(此處) 。只需制作一個像這樣的自定義驗證器:carriercodethis.parent['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;

            }

        })

})


查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號