JavaScript正则表达式验证表单
原文链接 https://jamling.github.io/2007/06/07/Web-JavaScript%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E9%AA%8C%E8%AF%81%E8%A1%A8%E5%8D%95/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
原理:基于自定义的标签; 实现:目前只有文本框和密码域的验证
<!-- more -->
/*************************自定义的模式匹配函数
*********rule:匹配规则
*********vaule:匹配对象(表单元素的值)
*********warning:警告内容
*********note:显示警告的DIV层
************************************************/
function myReg(rule, value, warning, note) {
var reg = new RegExp(rule);
var noteDiv = document.getElementById(note);
if (!reg.test(value)) {
err += warning;
err += '\n';
noteDiv.innerHTML = "<font color=red>" + warning + "</font>"
} else {
noteDiv.innerHTML = "<font color=green>OK</font>"
}
}
function checkForm2(form) {
var f = document.getElementById(form);
var l = form.length;
for (i = 0; i < l; i++) {
var e = f.elements;
switch (e.type) {
case "text":
{
if (e.need == "true") {
myReg(e.rule, e.value, e.warning, e.note)
} else {
if (e.value != "") {
myReg(e.rule, e.value, e.warning, e.note)
} else {
document.getElementById(e.note).innerHTML = "ok"
}
}
break
}
case "password":
{
myReg(e.rule, e.value, e.warning, e.note);
if (psw == "") {
psw = e.value
} else {
if (psw != e.value) {
document.getElementById(e.note).innerHTML = "<font color=red>" + e.warning + "</font>"
} else {
document.getElementById(e.note).innerHTML = "<font color=green>ok</font>"
}
psw = ""
}
break
}
}
}
if (err != "") {
alert(err);
err = '';
return false
} else {
return true
}
}