js校验

//焦点放置在第一个表单域*/
function focusInFirst()
{
document.forms[0].elements[0].focus();
}

//判断用户输入是否为空*/
function isEmpty(ui)
{
return (ui==null||ui=="");
}

//取得用户输入的字符串的长度*/
function getLength(ui)
{
var i,sum=0;
for(i=0;i<ui.length;i++)
{
if((ui.charCodeAt(i)>=0) && (ui.charCodeAt(i)<=255))
sum++;
else
sum+=2;
}
return sum;
}

//是否为数字、字母或下划线*/
function isNLU(ui)
{
var valid=/^\w*$/;
return (valid.test(ui));
}

//判断是否为身份证号码*/
function isIdno(ui)
{
var valid=/(^\d{16}$)|(^\d{18}$)/;
return (isEmpty(ui)||valid.test(ui));
}

//判断是否为邮政编码*/
function isPostCode(ui)
{
var valid=/^\d{6}$/;
return (isEmpty(ui)||valid.test(ui));
}

//判断是否为固定电话*/
function isChinaTel(ui){
var valid=/(^0\d{2,3}\-\d{7,8}$)|(^\d{7,8}$)/;
return (isEmpty(ui)||valid.test(ui));
}

//判断是否为移动电话*/
function isChinaMob(ui)
{
var valid=/^0?\d{11}$/;
return (isEmpty(ui)||valid.test(ui));
}

//判断是否为电话,只能为固定电话或移动电话*/
function isTel(ui)
{
var valid=/(^0\d{2,3}\-\d{7,8}$)|(^0?1[0,1,3,5,6,8,9]\d{9}$)/;
return (isEmpty(ui)||valid.test(ui));
}

//判断是否为邮件*/
function isMail(ui)
{
if(isEmpty(ui)){return true;}
var notValid=/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(^\-)|(\-\.)|(\.\-)/;
var valid=/^.+\@[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/;
return (!notValid.test(ui)&&valid.test(ui));
}

//用户输入字符串长度是否在两值之间*/
function isLenBetween(ui,minl,maxl)
{
return (ui>=minl&&ui<=maxl);
}

//=================================

var Validator = function(name)
{
this.formName = name;
this.errMsg = new Array();

/* *
* 检查用户是否输入了内容
*
* @param : controlId 表单元素的ID
* @param : msg 错误提示信息
*/
this.required = function(controlId, msg)
{
var obj = document.forms[this.formName].elements[controlId];
if (typeof(obj) == "undefined" || Utils.trim(obj.value) == "")
{
this.addErrorMsg(msg);
}
}
;

/* *
* 检查用户输入的是否为合法的邮件地址
*
* @param : controlId 表单元素的ID
* @param : msg 错误提示信息
* @param : required 是否必须
*/
this.isEmail = function(controlId, msg, required)
{
var obj = document.forms[this.formName].elements[controlId];
obj.value = Utils.trim(obj.value);

if ( ! required && obj.value == '')
{
return;
}

if ( ! Utils.isEmail(obj.value))
{
this.addErrorMsg(msg);
}
}

/* *
* 检查两个表单元素的值是否相等
*
* @param : fstControl 表单元素的ID
* @param : sndControl 表单元素的ID
* @param : msg 错误提示信息
*/
this.eqaul = function(fstControl, sndControl, msg)
{
var fstObj = document.forms[this.formName].elements[fstControl];
var sndObj = document.forms[this.formName].elements[sndControl];

if (fstObj != null && sndObj != null)
{
if (fstObj.value == '' || fstObj.value != sndObj.value)
{
this.addErrorMsg(msg);
}
}
}

/* *
* 检查前一个表单元素是否大于后一个表单元素
*
* @param : fstControl 表单元素的ID
* @param : sndControl 表单元素的ID
* @param : msg 错误提示信息
*/
this.gt = function(fstControl, sndControl, msg)
{
var fstObj = document.forms[this.formName].elements[fstControl];
var sndObj = document.forms[this.formName].elements[sndControl];

if (fstObj != null && sndObj != null) {
if (Utils.isNumber(fstObj.value) && Utils.isNumber(sndObj.value)) {
var v1 = parseFloat(fstObj.value) + 0;
var v2 = parseFloat(sndObj.value) + 0;
} else {
var v1 = fstObj.value;
var v2 = sndObj.value;
}

if (v1 <= v2) this.addErrorMsg(msg);
}
}

/* *
* 检查输入的内容是否是一个数字
*
* @param : controlId 表单元素的ID
* @param : msg 错误提示信息
* @param : required 是否必须
*/
this.isNumber = function(controlId, msg, required)
{
var obj = document.forms[this.formName].elements[controlId];
obj.value = Utils.trim(obj.value);

if (obj.value == '' && ! required)
{
return;
}
else
{
if ( ! Utils.isNumber(obj.value))
{
this.addErrorMsg(msg);
}
}
}

/* *
* 检查输入的内容是否是一个整数
*
* @param : controlId 表单元素的ID
* @param : msg 错误提示信息
* @param : required 是否必须
*/
this.isInt = function(controlId, msg, required)
{
var obj = document.forms[this.formName].elements[controlId];
obj.value = Utils.trim(obj.value);

if (obj.value == '' && ! required)
{
return;
}
else
{
if ( ! Utils.isInt(obj.value)) this.addErrorMsg(msg);
}
}

/* *
* 检查输入的内容是否是为空
*
* @param : controlId 表单元素的ID
* @param : msg 错误提示信息
* @param : required 是否必须
*/
this.isNullOption = function(controlId, msg)
{
var obj = document.forms[this.formName].elements[controlId];

obj.value = Utils.trim(obj.value);

if (obj.value > '0' )
{
return;
}
else
{
this.addErrorMsg(msg);
}
}

/* *
* 检查输入的内容是否是"2006-11-12 12:00:00"格式
*
* @param : controlId 表单元素的ID
* @param : msg 错误提示信息
* @param : required 是否必须
*/
this.isTime = function(controlId, msg, required)
{
var obj = document.forms[this.formName].elements[controlId];
obj.value = Utils.trim(obj.value);

if (obj.value == '' && ! required)
{
return;
}
else
{
if ( ! Utils.isTime(obj.value)) this.addErrorMsg(msg);
}
}

/* *
* 检查前一个表单元素是否小于后一个表单元素(日期判断)
*
* @param : controlIdStart 表单元素的ID
* @param : controlIdEnd 表单元素的ID
* @param : msg 错误提示信息
*/
this.islt = function(controlIdStart, controlIdEnd, msg)
{
var start = document.forms[this.formName].elements[controlIdStart];
var end = document.forms[this.formName].elements[controlIdEnd];
start.value = Utils.trim(start.value);
end.value = Utils.trim(end.value);

if(start.value <= end.value)
{
return;
}
else
{
this.addErrorMsg(msg);
}
}

/* *
* 检查指定的checkbox是否选定
*
* @param : controlId 表单元素的name
* @param : msg 错误提示信息
*/
this.requiredCheckbox = function(chk, msg)
{
var obj = document.forms[this.formName].elements[controlId];
var checked = false;

for (var i = 0; i < objects.length; i ++ )
{
if (objects[i].type.toLowerCase() != "checkbox") continue;
if (objects[i].checked)
{
checked = true;
break;
}
}

if ( ! checked) this.addErrorMsg(msg);
}

this.passed = function()
{
if (this.errMsg.length > 0)
{
var msg = "";
for (i = 0; i < this.errMsg.length; i ++ )
{
msg += "- " + this.errMsg[i] + "\n";
}

alert(msg);
return false;
}
else
{
return true;
}
}

/* *
* 增加一个错误信息
*
* @param : str
*/
this.addErrorMsg = function(str)
{
this.errMsg.push(str);
}
}

/* *
* 帮助信息的显隐函数
*/
function showNotice(objId)
{
var obj = document.getElementById(objId);

if (obj)
{
if (obj.style.display != "block")
{
obj.style.display = "block";
}
else
{
obj.style.display = "none";
}
}
}

/* *
* add one option of a select to another select.
*
* @author Chunsheng Wang < wwccss@263.net >
*/
function addItem(src, dst)
{
for (var x = 0; x < src.length; x ++ )
{
var opt = src.options[x];
if (opt.selected && opt.value != '')
{
var newOpt = opt.cloneNode(true);
newOpt.className = '';
newOpt.text = newOpt.innerHTML.replace(/^\s+|\s+$|&nbsp;/g, '');
dst.appendChild(newOpt);
}
}

src.selectedIndex = -1;
}

/* *
* move one selected option from a select.
*
* @author Chunsheng Wang < wwccss@263.net >
*/
function delItem(ItemList)
{
for (var x = ItemList.length - 1; x >= 0; x -- )
{
var opt = ItemList.options[x];
if (opt.selected)
{
ItemList.options[x] = null;
}
}
}

/* *
* join items of an select with ",".
*
* @author Chunsheng Wang < wwccss@263.net >
*/
function joinItem(ItemList)
{
var OptionList = new Array();
for (var i = 0; i < ItemList.length; i ++ )
{
OptionList[OptionList.length] = ItemList.options[i].text + "|" + ItemList.options[i].value;
}
return OptionList.join(",");
}

原文地址:https://www.cnblogs.com/wjlstation/p/2596416.html