繁体   English   中英

验证正则表达式

[英]Validating regular expression

我一直在处理此问题已有一段时间,并希望获得一些指导。 我提示用户输入“课程”信息(示例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都不会产生发现无效信息的消息。

您可以使用

 function isValidInfo(course) { var infoRegExp = /^[AZ]{3}\\.\\d{3}#\\d{4}_[az]{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演示可在此处获得 请注意, validate()函数应与您的course参数一起调用,因此我在console.log()添加了validate(course) console.log()

另外,请参阅正则表达式图

在此处输入图片说明

细节

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM