亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

正規(guī)表示式行為的差異
P粉996763314
P粉996763314 2024-04-01 13:33:29
0
1
548

我正在嘗試建立一個(gè)正規(guī)表示式來匹配應(yīng)包含 9 位數(shù)字的欄位

我使用下面的正規(guī)表示式

/^\d{9,9}$/

現(xiàn)在,問題是在做的時(shí)候

/^\d{9,9}$/.test("123456789") //returns true

但是,當(dāng)我嘗試使用 Yup 的匹配項(xiàng)使用相同的正規(guī)表示式(在下面的 myRegex 中傳遞)時(shí)

'myField': yup
            .string()
            .nullable()
            .required('Field is required')
            .max(9, `Max length 9`)
            .matches(myRegex, {
                message: 'Field is invalid',
            }),

對(duì)於相同的輸入,我收到無效訊息,即 123456789

只是想知道為什麼會(huì)這樣?

更新: 是的,使用 value.search(regex) ,因此,就我而言,它運(yùn)行“123456789”.search(/^\d{9,9}$/)

不確定以上是否是問題所在?

P粉996763314
P粉996763314

全部回覆(1)
P粉362071992

似乎您的解決方案使用了錯(cuò)誤的正規(guī)表示式

當(dāng) Yup 的 search() 方法與正規(guī)表示式一起使用時(shí),就會(huì)出現(xiàn)問題。 search() 方法傳回第一個(gè)符合項(xiàng)目的索引,且不計(jì)算完整字串。

由於「123456789」連續(xù)包含9位數(shù)字,因此滿足正規(guī)表示式,search()方法傳回第一次出現(xiàn)的索引,即0。由於0是真值,所以Yup將其解釋為失敗的匹配並傳回?zé)o效訊息。

這是您可以嘗試使用 /^\d{9}$/ 的正規(guī)表示式

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板