javascript - 验证正则表达式

标签 javascript html regex

我已经处理这个问题一段时间了,希望得到一些指导。我提示用户输入“类(class)”信息(示例 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.")
    }
}

我需要能够单击验证按钮并生成“有效信息!”消息或“无效信息”。信息。 任何有用的指导将不胜感激。 现在按原样使用代码,验证按钮什么都不做。如果我输入 aaa.111#2222_aa-1234,删除 [A-Z]... 和 [a-z] 并将“i”更改为“g”可以使其正常工作,但其他任何内容都不会产生看到无效信息的消息。

最佳答案

你可以使用

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 参数调用,因此我在 console.log 中添加了 validate(course) ()

另请参阅 regex graph :

enter image description here

详情

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

关于javascript - 验证正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56566185/

相关文章:

javascript - 在 JavaScript 中创建计划任务

c# - 如何从 C# System.Windows.Form.HtmlElement 中提取 *immediate* 文本(即不是子文本)

javascript - 如何从父元素获取 ID 作为字符串并与另一个字符串进行比较?

html - SPAN 中的 H2 - 浏览器兼容?

javascript - javascript正则表达式不是懒惰的吗?

php - preg_match 显示包含一个字符串和另外两个字符串之一的行

javascript - 随机发生器总是返回第一个值

javascript - 无法从函数返回字符串

javascript - 为什么 child_process.execSync 的输出为空?

regex - vimrc 检测远程连接