白板的微信
2023-07-29 16:49:39
需要檢查字符串是否為 1 到 99 之間的整數(shù)。因此此處最多允許 2 個(gè)字符?;蛘邘备艿姆?jǐn)?shù)必須強(qiáng)制為 3 個(gè)字符,第二個(gè)字符處帶有斜杠,并且分子 [1-8] 始終小于分母 [2-9],因此最小可能分?jǐn)?shù)為 1/2。所以最大可能的分?jǐn)?shù)是 8/9。有效分?jǐn)?shù)包括:2/3、5/8、4/9 等。不能包含在內(nèi)的無(wú)效分?jǐn)?shù)為 3/400 8/5 6/3 0/9正則表達(dá)式是什么?const req = /someregex/g;req.test(string) 是如何工作的?
1 回答

嚕嚕噠
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒(méi)有簡(jiǎn)短的正則表達(dá)式,因?yàn)闆](méi)有辦法說(shuō)分子應(yīng)該小于分母。幸運(yùn)的是,您只想接受只有一位數(shù)字的分子和分母,因此您可以列出每個(gè)分子允許的分母:分子只有 8 種可能性。
因此,與 1 到 99 之間的整數(shù)相結(jié)合,您將得到:
^([1-9]\d?|1\/[2-9]|2\/[3-9]|3\/[4-9]|4\/[5-9]|5\/[6-9]|6\/[7-9]|7\/[89]|8\/9)$
和錨點(diǎn)確保整個(gè)字符串應(yīng)該匹配——因此潛在匹配^
項(xiàng)$
周圍不允許有任何字符。
盡管這可能適合您的情況,但一般來(lái)說(shuō),我認(rèn)為正則表達(dá)式不是適合此情況的工具??紤]使用 JavaScript 編寫(xiě)驗(yàn)證代碼。
添加回答
舉報(bào)
0/150
提交
取消