表单验证操作在开发中经常遇到,下面以输入Email提交验证:
JS使用正则表达式验证输入数据格式: /正则表达式/.test(验证的内容)
以上操作返回boolean型数据
<!--验证Email地址-->
<html> <!--网页开始标记-->
<head> <!--头标记-->
<title>ZhangZe</title>
<script language = "JavaScript">
function validate(f){ // 定义函数,此时 f 表示 myform
var value = f.email.value; // 取得输入内容
if (!/^\w+@\w+.\w+$/.test(value)){ // 对输入内容进行正则验证
alert("输入格式不正确!"); // 弹出警告框
f.email.focus(); // 让焦点定位到email框
f.email.select(); // 选择全部内容
return false; // 返回false,表单不提交
}
return true; // 返回true,表单提交
}
</script>
</head> <!--完结标记-->
<body>
<!--表单开始标记,按钮事件调用validate()函数进行验证,其中this表示当前元素,即此表单-->
<form action = "" method = "post" name = "myform" onSubmit = "return validate(this)">
Email:<input type = "text" name = "email">
<input type = "submit" value = "提交">
</form>
</body>
</html> <!--完结标记-->
出现的问题:
1、正则表达式编写代码时一定要注意空格问题,这是与我编程风格有矛盾的地方。另外要注意结合(^和&)
2、当表单内容是单选按键或复选框,由于出现同名情况,所以要采用数组的方式进行操作。
3、而采用数组操作,编写循环代码时,这也是与编Java代码习惯矛盾的地方。非常容易顺手敲错!eg:for(int i = 0; i < document.myform.length; i++) // 错误!不要 int 类型