使用正则表达式验证GPA

6

所以我需要验证输入的GPA是否符合以下准则:第一个数字为0-4,接下来是一个(.),然后是另外两个数字,范围为0-9。这是我的代码,但它并没有起作用。

function validateGPA(gpa){
        var errorValue = gpa;
        var legalValue = /^\[0-4]\[.]\d\d$/;
        console.log(gpa);
        if(gpa == ""){
            errorValue = "Please enter your GPA.\n";
        }   else if(!legalValue.test(gpa)){
            errorValue = "Please enter a 3 digit gpa.\n";
        }
        return errorValue;
    }

我不确定自己做错了什么,已经尝试了一些调整,但似乎没有任何作用。


你为什么要转义 [ - user663031
3个回答

10

这是最短的表达方式:

/^[0-4]\.\d\d$/

解释:

^     - Start of line
[0-4] - One digit in the range 0-4
\.    - A dot, which needs to be escaped with a backslash.
        Without the backslash it means "any character apart from line break"
\d\d  - Two digits (any value from 0-9)
$     - End of line

5
尝试像这样:
/^[0-4]\.\d{2}$/

0
/^[0-4][.][0-9][0-9]$/

^ 匹配所有以数字 0 到 4 开头的字符串 $ - 表示字符串以数字 0 到 9 结尾

希望这能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接