我需要的是在允许学生提交课程摘要之前检查文本区域中的几个关键字。以下正则表达式可以正常工作,只要它们不单击Enter即可创建新段落。
/^(?=.*\bmodel|models\b)(?=.*\btheory|theories\b)(?=.*\blaw|laws\b)(?=.*\bscale\b)/i;
从我一直在阅读的内容来看,对正则表达式的以下修改似乎应该允许我的验证脚本在换行符之间进行读取,但是我没有取得任何成功。
var ck_summary = /^(?=.[\S\s]*\bmodel|models\b)(?=.[\S\s]*\btheory|theories\b)(?=.[\S\s]*\blaw|laws\b)(?=.[\S\s]*\bscale\b)/i;
我(显然)是对此的初学者,渴望学习。谁能解释我在做什么错?非常感谢!这是我的整个摘要验证脚本...
var ck_studentid = /^[0-9]{6,6}$/;
var ck_summary = /^(?=.[\S\s]*\bmodel|models\b)(?=.[\S\s]*\btheory|theories\b)(?=.[\S\s]*\blaw|laws\b)(?=.[\S\s]*\bscale\b)/i;
function validate(sumform){
var studentid = sumform.studentid.value;
var summary = sumform.summary.value;
var errors = [];
if (!ck_studentid.test(studentid)) {
errors[errors.length] = "Check your Student ID";
}
if (!ck_summary.test(summary)) {
errors[errors.length] = "Make sure you used all of the vocabulary terms AND you spelled them correctly.";
}
if (errors.length > 0) {
reportErrors(errors);
return false;
}
return true;
}
function reportErrors(errors){
var msg = "Uh oh, looks like we have a problem...\n";
for (var i = 0; i<errors.length; i++) {
var numError = i + 1;
msg += "\n" + numError + ". " + errors[i];
}
alert(msg);
}
从我一直在阅读的内容来看,对正则表达式的以下修改似乎应该允许我的验证脚本在换行符之间进行读取,但是我没有取得任何成功。
var ck_summary = /^(?=.[\S\s]*\bmodel|models\b)(?=.[\S\s]*\btheory|theories\b)(?=.[\S\s]*\blaw|laws\b)(?=.[\S\s]*\bscale\b)/i;
这对您不起作用,因为您没有对其进行很好的修改。
.*:
捕获除换行符之外的每个字符/单词\n
,这就是为什么要告诉您对其进行修改的原因,以[\S\s]*
捕获包括换行符的每个字符/单词\n
。但是,查看您的图案,您并没有完全修改它,应该删除.
之前的所有圆点[\S\s]*
。
您的新代码应如下所示
var ck_summary = /^(?=[\S\s]*\bmodel|models\b)(?=[\S\s]*\btheory|theories\b)(?=[\S\s]*\blaw|laws\b)(?=[\S\s]*\bscale\b)/i;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句