一个简单的小Demo展示原生的前端校验
<%@ page contentType = "text/html;charset=UTF-8" %>
<%@ page import = "java.sql.*" %>
<!-- CSS goes in the document HEAD or added to your external stylesheet -->
<style type="text/css">
table.gridtable {
font-family: verdana,arial,sans-serif;
font-size:16px;
color:#333333;
border-width: 1px;
border-color: #666666;
border-collapse: collapse;
}
table.gridtable th {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #dedede;
}
table.gridtable td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #ffffff;
}
</style>
<html>
<head>
<title>前端校验测试</title>
</head>
<body>
<h1>前端校验测试</h1>
<table class="gridtable"
>
<thead>
<tr>
<th>规则</th>
<th>测试区</th>
</tr>
</thead>
<tbody>
<tr>
<td width="50%" height="40" align="left"> <font color="red" size="4"><strong>通用方法测试</strong></font>* 1、过滤首尾空格 * 2、字母自动转大写</td>
<td width="50%" height="40" align="left"> <input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="通用方法测试" onblur="commonFunction(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"> <font color="red" size="4"><strong>身份证号验证</strong></font> * 1、只能是15位或18位数字和字母 * 2、中间不允许空格 </td>
<td width="50%" height="40" align="left"> <input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="1" onblur="fucCheckIDCard(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"> <font color="red" size="4"><strong>港澳台居住证</strong></font> * 1、只能是18位数 * 2、中间不允许空格 </td>
<td width="50%" height="40" align="left"> <input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="2" onblur="fucCheckHKIDCard(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>驾驶证号码</strong></font> * 1、只能是12位数 * 2、中间不允许空格 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="3" onblur="fucCheckCarIDCard(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>车架号/VIN码</strong></font> * 1、只能是17位字母+数字 * 2、中间不允许空格 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="4" onblur="fucCheckSocialCreditCode(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>车牌号码</strong></font> * 1、汉字+字母+数字组合,长度不超过15; * 2、不包括*、%、-等特殊符号 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="5" onblur="fucCheckCarLicensePlate(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>发动机号码</strong></font> * 1、不包括*、%、-等特殊符号 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="6" onblur="fucCheckCarEngineNumber(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>银行账号1</strong></font> * 1、只能是数字组成,长度不超过19位; * 2、不包括除数字外的其他字符; * 3、中间不允许空格</td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="7" onblur="fucCheckBankAccount(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>银行账号2</strong></font> * 1、只能是数字组成,长度不超过19位; * 2、不包括除数字外的其他字符; * 3、中间不允许空格 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="8" onblur="fucCheckBankAccount2(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>手机号码</strong></font> * 1、只能是11位数字组成; * 2、不包括除0~9数字以外的其他字母字符; * 3、数字1开头 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="9" onblur="fucCheckPhoneNumber(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>统一社会信用代码</strong></font> * 1、长度不超过18位; * 2、只能有字母和阿拉伯数字组成; * 3、中间不允许空格 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="10" onblur="fucCheckSocialCreditCode(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>询报价号码</strong></font> * 1、长度不超过30 * 2、只允许阿拉伯数字 * 3、中间不允许空格 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="11" onblur="fucCheckProposalNo(this);" /> </td>
</tr>
<tr>
<td width="50%" height="40" align="left"><font color="red" size="4"><strong>电话号码</strong></font> * 1、包括手机与座机号码校验 </td>
<td width="50%" height="40" align="left"><input name="conditon1" type="text" class="common" maxlength="37" style="width: 50%" value="12" onblur="fucCheckPhoneNumberAll(this);" /> </td>
</tr>
</tbody>
</table>
<!--数据校验-->
<script>
/**
* 通用规则
* 1、过滤首尾空格
* 2、字母自动转大写
*/
function commonFunction(field){
var inputDate ;
var outputDate ;
inputDate = field.value;
//outputDate = inputDate.toUpperCase().replace(/\s*/g,""); 过滤全部空格和小写转大写
outputDate = inputDate.replace(/(^\s*)|(\s*$)/g, "").toUpperCase();//过滤首尾空格,小写转大写
field.value = outputDate;
}
/**
* 身份证号验证
* 1、只能是15位或18位数字和字母
* 2、中间不允许空格
*/
function fucCheckIDCard(field) {
var idCardNum;
idCardNum = field.value;
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(idCardNum)) { //1、只能是15位或18位数字和字母, 2、中间不允许空格
return true;
} else {
alert("请输入正确的15位或18位身份证号码。");
field.value = "";
return false;
}
}
/**
* 港澳台居住证
* 1、只能是18位数
* 2、中间不允许空格
*/
function fucCheckHKIDCard(field) {
var hkIdCardNum;
hkIdCardNum = field.value;
//
var reg = /^[0-9]{18}$/;
if (reg.test(hkIdCardNum)) { //1、只能18位数
return true;
} else {
alert("请输入正确的18位港澳台居民居住证。");
field.value = "";
return false;
}
}
/**
* 驾驶证号码
* 1、只能是12位数
* 2、中间不允许空格
*/
function fucCheckCarIDCard(field) {
var carNum;
carNum = field.value;
var reg = /^[0-9]{12}$/;
if (reg.test(carNum)) { //12位数
return true;
} else {
alert("请输入正确的驾驶证号码。");
field.value = "";
return false;
}
}
/**
* 车架号/VIN码
* 1、只能是17位字母+数字
* 2、中间不允许空格
*/
function fucCheckCarFrameNumber(field) {
var carNum;
carNum = field.value;
var reg = /^[0-9a-zA-Z]{17}$/;
if (reg.test(carNum)) { //数字字母
if (carNum.length == 17) { //17位
return true;
} else {
alert("请输入正确的17位车架号/VIN码。" + carNum.length);
field.value = "";
return false;
}
} else {
alert("请输入正确的17位车架号/VIN码。");
field.value = "";
return false;
}
}
/**
* 车牌号码
* 1、汉字+字母+数字组合,长度不超过15;
* 2、不包括*、%、-等特殊符号
*/
function fucCheckCarLicensePlate(field) {
var carNum;
carNum = field.value;
var reg = /^[\u4E00-\u9FA50-9A-Za-z]+$/;
var regSpc = /[^u4e00-u9fa5w]{15}$/;
if (reg.test(carNum) && !regSpc.test(carNum) && carNum.length <= 15) { //数字字母中文 //特殊字符^%&',;=?$\" //15位
return true;
}else {
alert("请输入正确的车牌号码,不包括*、%、-等特殊符号。");
field.value = "";
return false;
}
}
/**
* 发动机号码
* 1、不包括*、%、-等特殊符号
*/
function fucCheckCarEngineNumber(field) {
var carNum;
carNum = field.value;
var reg = /[^u4e00-u9fa5w]/;
if (!reg.test(carNum)) { //数字字母中文
return true;
} else {
alert("请输入正确的发动机号码。");
field.value = "";
return false;
}
}
/**
* 银行账号
* 1、只能是数字组成,长度不超过19位;
* 2、不包括除数字外的其他字符;
* 3、中间不允许空格
*/
function fucCheckBankAccount(field) {
var bankAccountNo;
bankAccountNo = field.value;
//js去除空格的方法 str = str.replace(/\s+/g,"");
var regbankAccountNo = /^\d{1,19}$/; //只能是数字,长度不超过19位
if (regbankAccountNo.test(bankAccountNo) && bankAccountNo.length <= 19) {
return true;
} else {
alert("请填写正确的银行账号,长度不超过19位,谢谢!");
field.value = "";
return false;
}
}
/**
* 银行账号
* 1、只能是数字组成,长度不超过19位;
* 2、不包括除数字外的其他字符;
* 3、中间不允许空格
*/
function fucCheckBankAccount2(field) {
var bankAccountNo;
bankAccountNo = field.value;
//js去除空格的方法 str = str.replace(/\s+/g,"");
var regbankAccountNo = /^\d{1,19}$/;
if (regbankAccountNo.test(bankAccountNo) && bankAccountNo.length > 0 && bankAccountNo.length < 20) { //只能是数字
return true;
}else {
alert("请填写正确的银行账号,长度不超过19位,谢谢!");
field.value = "";
return false;
}
}
/**
* 手机号码
* 1、只能是11位数字组成;
* 2、不包括除0~9数字以外的其他字母字符;
* 3、数字1开头;
*/
function fucCheckPhoneNumber(field) {
var phoneNum;
phoneNum = field.value;
var reg = /^1\d{10}$/;
if (reg.test(phoneNum)) { //1开头的11位数字
return true;
} else {
alert("请输入正确的11位数字手机号码。");
field.value = "";
return false;
}
}
/**
* 统一社会信用代码
* 1、长度不超过18位;
* 2、只能有字母和阿拉伯数字组成;
* 3、中间不允许空格
*/
function fucCheckSocialCreditCode(field) {
var creditNum;
creditNum = field.value;
var reg = /^[0-9a-zA-Z]{1,18}$/;
if (reg.test(creditNum)) { //1-18位数字字母验证
return true;
} else {
alert("请注意,统一社会信用代码长度不能超过18位。");
field.value = "";
return false;
}
}
/**
* 询报价号码
* 1、长度不超过30
* 2、只允许阿拉伯数字
* 3、中间不允许空格
*/
function fucCheckProposalNo(field) {
var creditNum;
creditNum = field.value;
var reg = /^[0-9]{1,30}$/;
if (reg.test(creditNum) || creditNum =="") { //1-18位数字字母验证
//field.setAttribute("class","gridtable");
field.style.backgroundColor = '#ffffff';
return true;
} else {
alert("请注意,统一社会信用代码长度不能超过18位。");
field.value = "";
field.style.backgroundColor = '990000';
return false;
}
}
/**
* 电话号码
*/
function fucCheckPhoneNumberAll(field) {
var creditNum;
creditNum = field.value;
var reg = /^([1]\d{10}|([\((]?0[0-9]{2,3}[)\)]?[-]?)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?)$/;
if (reg.test(creditNum) || creditNum =="") { //1-18位数字字母验证
//field.setAttribute("class","gridtable");
field.style.backgroundColor = '#ffffff';
return true;
} else {
alert("请输入正确的11位数字手机号码或电话号码。");
field.value = "";
field.style.backgroundColor = '990000';
return false;
}
}
</script>
<!--数据校验-->
</body>
</html>
<!--
/**
* 证件号码验证(01居民身份证,06港澳台居民居住证)
* 1、只能是15位或18位数字和字母
* 2、中间不允许空格
*/
function fucCheckIDCard(field,identifyTypeName) {
var idCardNum = field.value;
var order = jtk.elementToolKit.getFieldOrder(field);
var idType = document.getElementsByName(identifyTypeName)[order].value;
var validateFlag = true;
if(idType == '01'){//01居民身份证
validateFlag = fucCheckIDCard(field);
}
if(idType == '06'){//06港澳居民居住证
var firstSixBitCheck = idCardNum.substring(0,6);
if(firstSixBitCheck == "810000" || firstSixBitCheck == "820000" || firstSixBitCheck == "830000"){// 前6位为810000、820000或830000
validateFlag = fucCheckIDCard(field);
}else{
alert("请输入正确的18位港澳台居民居住证。");
}
}
return validateFlag;
}
-->