JavaScript正则表达式验证表单

2007-06-07 Jamling 更多博文 » 博客 » GitHub »

js

原文链接 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
  }
}