我已经处理这个问题一段时间了,希望得到一些指导。我提示用户输入“类(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 :
详情
^
- 字符串的开始[A-Z]{3}
- 三个字母(不区分大小写的修饰符也使其匹配小写字母)\.
- 一个点\d{3}
- 三位数#
-#
字符\d{4}
- 四位数_
- 下划线[a-z]{2}
- 任意 2 个字母-
- 连字符\d{4}
- 四位数字(不区分大小写的修饰符也使其匹配小写字母)$
- 字符串结尾。
关于javascript - 验证正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56566185/