判断字符串是整数还是分数的正则表达式
Regular expression to see if string is a whole number or a fraction
- 需要检查字符串是否为 1 到 99 之间的整数。因此此处最多允许 2 个字符。
或
带斜杠的分数必须是 3 个字符,在第 2 个字符处有斜杠
分子[1-8] 总是小于分母[2-9] 所以
最小可能分数为 1/2。所以最大可能分数
是 8/9。有效分数包括:2/3、5/8、4/9 等
无法包含的无效分数为 3/400 8/5 6/3 0/9
正则表达式是什么?
const req = /someregex/g;
还有 req.test(string) 是如何工作的?
没有短正则表达式,因为没有办法说分子应该小于分母。幸运的是,您只想接受一位数字的分子和分母,因此您可以列出每个分子允许的分母:分子只有 8 种可能性。
结合 1 到 99 之间的整数,你得到:
^([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)$
^
和 $
锚点确保整个字符串应该匹配——因此在潜在匹配项周围不允许有任何字符。
虽然这可能适用于您的情况,但总的来说,我认为正则表达式不是解决此问题的正确工具。考虑在 JavaScript.
中编码您的验证
- 需要检查字符串是否为 1 到 99 之间的整数。因此此处最多允许 2 个字符。
或
带斜杠的分数必须是 3 个字符,在第 2 个字符处有斜杠 分子[1-8] 总是小于分母[2-9] 所以 最小可能分数为 1/2。所以最大可能分数 是 8/9。有效分数包括:2/3、5/8、4/9 等
无法包含的无效分数为 3/400 8/5 6/3 0/9
正则表达式是什么?
const req = /someregex/g;
还有 req.test(string) 是如何工作的?
没有短正则表达式,因为没有办法说分子应该小于分母。幸运的是,您只想接受一位数字的分子和分母,因此您可以列出每个分子允许的分母:分子只有 8 种可能性。
结合 1 到 99 之间的整数,你得到:
^([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)$
^
和 $
锚点确保整个字符串应该匹配——因此在潜在匹配项周围不允许有任何字符。
虽然这可能适用于您的情况,但总的来说,我认为正则表达式不是解决此问题的正确工具。考虑在 JavaScript.
中编码您的验证