当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript form 验证函数 弹出对话框形式

Javascript
jquery 操作单选框,复选框,下拉列表实现代码
js 数组实现一个类似ruby的迭代器
JavaScript 组件之旅(一)分析和设计
JavaScript 组件之旅(二)编码实现和算法
JavaScript 组件之旅(三):用 Ant 构建组件
JavaScript 组件之旅(四):测试 JavaScript 组件
小议javascript 设计模式 推荐
浅谈javascript 面向对象编程
javascript 时间比较实现代码
js apply/call/caller/callee/bind使用方法与区别分析
JavaScript 全角转半角部分
jquery 选择器部分整理
Firebug 字幕文件JSON地址获取代码
jQuery 判断元素上是否绑定了事件
javascript实现的距离现在多长时间后的一个格式化的日期
javascript 面向对象,实现namespace,class,继承,重载
javascript 通过封装div方式弹出div窗体
JScript 脚本实现文件下载 一般用于下载木马
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
网页禁用右键实现代码(JavaScript代码)

Javascript 中的 javascript form 验证函数 弹出对话框形式


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 188 ::
收藏到网摘: n/a

javascript合法验证 js数据验证、js email验证、js url验证、js长度验证、js数字验证等(弹出对话框形式)
复制代码 代码如下:

/**
* 得到中英文字符长
* @param {} str
* @return {}
*/
function LengthB(str){
var p1 = new RegExp('%u..', 'g')
var p2 = new RegExp('%.', 'g')
return escape(str).replace(p1, '').replace(p2, '').length
}
/**
* 过滤所有空格字符
* @param {Object} str
*/
function jsTrim(str){
str += "";
while ((str.charAt(0) == ' ') || (str.charAt(0) == '???') || (escape(str.charAt(0)) == '%u3000'))
str = str.substring(1, str.length);
while ((str.charAt(str.length - 1) == ' ') || (str.charAt(str.length - 1) == '???') || (escape(str.charAt(str.length - 1)) == '%u3000'))
str = str.substring(0, str.length - 1);
return str;
}
/**
* 过滤中间字符串和多个空格
* @param {Object} inputString
*/
function trim(inputString){
if (typeof inputString != "string") {
return inputString;
}
var retValue = inputString;
var ch = retValue.substring(0, 1);
while (ch == " ") {
//检查字符串开始部分的空格
retValue = retValue.substring(1, retValue.length);
ch = retValue.substring(0, 1);
}
ch = retValue.substring(retValue.length - 1, retValue.length);
while (ch == " ") {
//检查字符串结束部分的空格
retValue = retValue.substring(0, retValue.length - 1);
ch = retValue.substring(retValue.length - 1, retValue.length);
}
while (retValue.indexOf(" ") != -1) {
//将文字中间多个相连的空格变为一个空格
retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ") + 1, retValue.length);
}
return retValue;
}
/**
* 过滤字符串,指定过滤内容,如果内容为空,则默认过滤 '~!@#$%^&*()-+."
* @param {Object} str
* @param {Object} filterStr
*
* @return 包含过滤内容,返回True,否则返回false;
*/
function FilterStr(str, filterStr){
filterStr = filterStr == "" ? "'~!@#$%^&*()-+.\"" : filterStr
var ch;
var i;
var temp;
var error = false;//当包含非法字符时,返回True
for (i = 0; i <= (filterStr.length - 1); i++) {
ch = filterStr.charAt(i);
temp = str.indexOf(ch);
if (temp != -1) {
error = true;
break;
}
}
return error;
}
/**
* 过滤指定内容字符串
* @param {Object} str 检查字符串
* @param {Object} filterStr 过滤字符串,内容为空,则默认过滤 '~!@#$%^&*()-+."
* @param {Object} alertStr 弹出对话内容
* @param {Object} idStr 出错返回出错字段ID
*/
function ISFilterStr(str, filterStr, alertStr, idStr){
alertStr = "对不起,您输入的 " + alertStr + " 不允包含 " + filterStr + " 非法字符";
if (FilterStr(str, filterStr))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 检查是否为网址
* @param {} str_url
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>不是</b>网址返回false;
*/
function IsURL(str_url, alertStr, idStr){// 验证url
alertStr = alertStr + " 格式不正确!";
var strRegex = "^((https|http|ftp|rtsp|mms)?://)" +
"?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" // ftp的user@
+
"(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
+
"|" // 允许IP和DOMAIN(域名)
+
"([0-9a-z_!~*'()-]+\.)*" // 域名- www.
+
"([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
+
"[a-z]{2,6})" // first level domain- .com or .museum
+
"(:[0-9]{1,4})?" // 端口- :80
+
"((/?)|" // a slash isn't required if there is no file name
+
"(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
var re = new RegExp(strRegex);
if (!re.test(str_url))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 检查是否为电子邮件
* @param {} str
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>不是</b>电子邮件返回false;
*/
function IsEmail(str, alertStr, idStr){
alertStr = alertStr + " 格式不正确!";
var re = /^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if (!re.test(str))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 检查是否为数字
* @param {} str
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>不是</b>数字返回false;
*/
function IsNum(str, alertStr, idStr){
alertStr = alertStr + " 应该由数字组成!";
var re = /^[\d]+$/
if (!re.test(str))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 检查数值是否在给定范围以内<br>
* @param {} str_num
* @param {} moreLen 应该大于或者等于的数值
* @param {} lessLen 应该小于或者等于的数值
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>小于最小数值或者大于最大数值</b>数字返回false;
*/
function IsRangeNum(str_num, moreLen, lessLen, alertStr, idStr){
IsNum(str_num, alertStr, idStr);
if (moreLen != "") {
alertStr = alertStr + " 数值不能小于 " + moreLen;
if (str_num < moreLen)
this.AlertAndRFalse(alertStr, idStr);
}
if (lessLen != "") {
alertStr = alertStr + " 数值不能大于 " + lessLen;
if (str_num > lessLen)
this.AlertAndRFalse(alertStr, idStr);
}
if (moreLen == "" && lessLen == "")
this.AlertAndRFalse("没有定义最大最小长度!", idStr);
}
/**
* 检查是否为合格字符串(不区分大小写)<br>
* 长度在6至20位,并且是由a-z0-9_组成的字符串
* @param {} str 检查的字符串
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>不是</b>"长度在6至20位且由a-z0-9_"组成返回false;
*/
function IsLicit(str, alertStr, idStr){
alertStr = "对不起," + alertStr + " 不能为空并且只能由 0到9 a到z 下划线 的6到20位组成! ";
var re = /^[_0-9a-zA-Z]{6,20}$/
if (!re.test(str))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 检查二个字符串是否相等
* @param {} str1 第一个字符串
* @param {} str2 第二个字符串
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} 字符串不相等返回false;
*/
function IsStrEquals(str1, str2, alertStr, idStr){
alertStr = "二次 " + alertStr + " 不一致!";
if (str1 != str2)
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 检查字符串是否在给定长度范围以内(中文字符以2个字节计算)<br>
*
* @param {} str 检查的字符
* @param {} moreLen 应该大于或者等于的长度
* @param {} lessLen 应该小于或者等于的长度
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>小于最小长度或者大于最大长度</b>数字返回false;
*/
function IsRange(str, moreLen, lessLen, alertStr, idStr){
var strLen = LengthB(str);
if (moreLen != "") {
alertStr = alertStr + " 应该大于或等于 " + moreLen + " 个字节长度!";
if (strLen < moreLen)
this.AlertAndRFalse(alertStr, idStr);
}
if (lessLen != "") {
alertStr = alertStr + " 应该小于或等于 " + lessLen + " 个字节长度!";
if (strLen > lessLen)
this.AlertAndRFalse(alertStr, idStr);
}
if (moreLen == "" && lessLen == "")
this.AlertAndRFalse("没有定义最大最小长度!", idStr);
}
/**
* 检查字符串是否小于给定长度范围(中文字符以2个字节计算)<br>
* @param {} str 字符串
* @param {} lessLen 小于或等于长度
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>大于给定长度</b>数字返回false;
*/
function IsLess(str, lessLen, alertStr, idStr){
IsRange(str, "", lessLen, alertStr, idStr);
}
/**
* 检查字符不为空
* @param {} str
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID<b>只能接收ID</b>
* @return {Boolean} <b>字符为空</b>返回false;
*/
function IsEmpty(str, alertStr, idStr){
alertStr = alertStr + " 不能为空!";
if (str == "")
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 弹出警示框,并定位到出错字段上
* @param {} alertStr 弹出警告框内容
* @param {} idStr 返回字段焦点
* @return {Boolean} 返回false
*/
function AlertAndRFalse(alertStr, idStr){
alert(alertStr);
document.getElementById(idStr).focus();
throw "valueErr";
}
// JavaScript Document
调用示例
function checkForm() {
try {
var title = trim(document.getElementById('title')); //文章标题
IsEmpty(title,"文章标题","title");//不可为空
IsLess(title,100,"文章标题","title");//标题应少于100个字符长
ISFilterStr(title, "~`!@#$%^&*()-=_+[]{}|\\;':\",./<>?", "文章标题","title")//标题不允许包含这些非法字符
} catch(err) {
if(err == "valueErr")
return false;
}
}