我处理这个问题已经有一段时间了,希望能得到一些指导。我正在提示用户输入"course“信息(示例AAA.111#2222_aa-1234),然后我为html页面创建了一个验证函数和按钮,以便从javascript获取资源
在我的isValidInfo函数中,我可以让它使用:
var infoRegExp = /^(\D{3}.\d{3}#\d{4}_\D{2}-\d{4})$/g; 使用IF语句,但else语句不会生成"Invalid information“消息。
另外,一旦我将函数中的代码更改为区分大小写,ie;
/^(\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按钮什么也不做。正在删除A-Z...如果我输入aaa.111#2222_aa-1234,则a-z和将“i”更改为“g”可以使其工作,但任何其他操作都不会产生发现无效信息的消息。
发布于 2019-06-13 00:06:19
您可以使用
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。请注意,应该使用course参数调用validate()函数,因此我在console.log()中添加了validate(course)。
另请参阅regex graph

详细信息
^ - string[A-Z]{3}的开始-三个字母(不区分大小写的修饰符使其匹配小写字母,too)\. -a dot\d{3} - three digits# -a dot\d{3} char\d{4} - four digits_ - an underscore[a-z]{2} -an 2 letters- -a hyphen\d{4} - # -四个数字(不区分大小写的修饰符使其匹配小写字母,too)$ -字符串结束。https://stackoverflow.com/questions/56566185
复制相似问题