验证正则表达式

时间:2019-06-12 15:56:07

标签: javascript html regex

我一直在解决这个问题已有一段时间,并希望获得一些指导。我提示用户输入“课程”信息(例如AAA.111#2222_aa-1234) 然后,我为HTML页面创建了一个验证函数和按钮,以从javascript中获取

在我的isValidInfo函数中,我可以使用它:

var infoRegExp = /^(\D{3}.\d{3}#\d{4}_\D{2}-\d{4})$/g; 

使用IF语句,但else语句不会产生“无效信息”消息。

此外,一旦我将函数内的代码更改为区分大小写,即;

/^(\D[A-Z][A-Z][A-Z].\d{3}#\d{4}_\D[a-z][a-z]-\d{4})$/i;

验证功能/按钮不起作用。

<!DOCTYPE html>
<html lang = "en">
    <head>
        <title>Input Course Info</title>
    </head>
    <body>
        <script src = "course.js"></script>
        <button onclick= "validate()">Validate</button>
    </body>

</html>

function isValidInfo(course) {
    var infoRegExp = /^(\D[A-Z][A-Z][A-Z].\d{3}#\d{4}_\D[a-z][a-z]-\d{4})$/i;
    var result = infoRegExp.test(course);
    return result
}
var course = prompt("Enter course information (format: AAA.111#2222_aa-1234): ");
function validate(){
    if (isValidInfo(course)) {
        document.write("Valid information!");
    } else {
        documwnt.write("Invalid information.")
    }
}

我需要能够点击验证按钮,并产生一个“有效信息!”消息或“无效信息”。信息。 任何有用的指导,将不胜感激。 现在,按原样使用代码,validate按钮不会执行任何操作。如果我输入aaa.111#2222_aa-1234,则删除[AZ] ...和[az]并将'i'更改为'g'可以使它正常工作,但是任何其他ELSE都不会产生发现无效信息的消息。

1 个答案:

答案 0 :(得分:2)

您可以使用

function isValidInfo(course) {
    var infoRegExp = /^[A-Z]{3}\.\d{3}#\d{4}_[a-z]{2}-\d{4}$/i; // Remove i flag if aaa.111#2222_aa-1234 is invalid!
    var result = infoRegExp.test(course);
    return result
}
var course = prompt("Enter course information (format: AAA.111#2222_aa-1234): ");
function validate(){
    if (isValidInfo(course)) {
        return "Valid information!";
    } else {
        return "Invalid information.";
    }
}
console.log(validate(course));

regex demo is available here。请注意,应该使用您的validate()参数调用course函数,因此我在validate(course)中添加了console.log()

另外,请参见regex graph

enter image description here

详细信息

  • ^-字符串的开头
  • [A-Z]{3}-三个字母(不区分大小写的修饰符也使其与小写字母匹配)
  • \.-一个点
  • \d{3}-三位数
  • #-一个#字符
  • \d{4}-四位数
  • _-下划线
  • [a-z]{2}-任意2个字母
  • --连字符
  • \d{4}-四位数字(不区分大小写的修饰符也使其与小写字母匹配)
  • $-字符串的结尾。