我试图执行正则表达式以匹配分数。
用户将输入分数,例如,1 / 4,1 / 10 / 10/2等。
我已经测试了这个正则表达式并且它有效,但问题是当我输入10 / 2,20 / 5,30 / 3,40 / 53等等时它没有识别出这些分数。这是我的正则表达式你可以看到,它首先整理了整数,然后是斜杠,最后是斜杠后面的整数。
var check_zero_value = str1.match(/[1-9]\/[1-9]/g);
if(!check_zero_value1)
{
return false;
}
对此有何想法?
答案 0 :(得分:3)
您可以使用此选项仅匹配分数:
/(?:[1-9][0-9]*|0)\/[1-9][0-9]*/g
或者这也匹配整数:
/(?:[1-9][0-9]*|0)(?:\/[1-9][0-9]*)?/g
在两种模式中,分子允许零,但分母不允许。
答案 1 :(得分:0)
要验证整数和分数,您可以这样做:
/[1-9][0-9]*(?:\/[1-9][0-9])*/g
链接至 Fiddler
如果您只想 分数:
/[1-9][0-9]*\/[1-9][0-9]*/g
链接至 Fiddler
答案 2 :(得分:0)
如果您想两者都可以使用
(([1-9]\d*\_)|([1-9]\d*\/[1-9]\d*)|([1-9]\d*\_[1-9]\d*\/[1-9]\d*))
以此,您可以验证是否收到以下情况
我使用GOLANG,您可以在github lcuriel/fractions
上看到我的仓库