2023/06/20

[Regex]如何用正則表達式檢查一個數字是否包含在一個數字陣列裡頭

 這個標題可能寫的不夠準確到能表達我的意思,

我遇到一個情形,

我有一個陣列,裡頭包含了監理站的代號,之前的寫法是用JS裡的Object.includes()去檢查輸入的數字是否在這個陣列裡頭,是就繼續執行後續的流程

const motorVehiclesOfficeIdList = [

            21, 25, 26, 30, 31, 33, 40, 41, 43, 44, 45, 46, 50, 51, 52, 53, 54,

            60, 61, 62, 63, 64, 65, 70, 71, 72, 73, 74, 75, 76, 80, 81, 82, 83,

            84,

        ];

if (

            motorVehiclesOfficeIdList.includes(dmvNo) === true

        ){

//pass

}

裝了JOI後,發現數字的檢查好像沒有includes,字串也沒有,就想用Regex來解決

最後是這麼寫的

dmvNo: Joi.string()

                    .pattern(

                        new RegExp(

                            "^.*21|25|26|30|31|33|40|41|43|44|45|46|50|51|52|53|54|60|61|62|63|64|65|70|71|72|73|74|75|76|80|81|82|83|84.*$"

                        )

                    )

                    .example("41")

                    .description("dmvNo")

                    .required()

有需要我再更新

沒有留言:

張貼留言