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


Posted in Javascript onJune 23, 2009
/** 
* 得到中英文字符长 
* @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; 
} 
}
Javascript 相关文章推荐
javascript-TreeView父子联动效果保持节点状态一致
Aug 12 Javascript
JS 创建对象(常见的几种方法)
Nov 03 Javascript
jQuery中将函数赋值给变量的调用方法
Mar 23 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
Sep 05 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
Aug 16 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
Dec 01 Javascript
JS变量及其作用域
Mar 29 Javascript
基于JavaScript实现飘落星星特效
Aug 10 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
JavaScript对象拷贝与赋值操作实例分析
Dec 10 Javascript
layer ui 导入文件之前传入数据的实例
Sep 23 Javascript
WordPress 照片lightbox效果的运用几点
Jun 22 #Javascript
WordPress JQuery处理沙发头像
Jun 22 #Javascript
JQuery 前台切换网站的样式实现
Jun 22 #Javascript
利用JQuery为搜索栏增加tag提示
Jun 22 #Javascript
web 页面分页打印的实现
Jun 22 #Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 #Javascript
实现超用户体验 table排序javascript实现代码
Jun 22 #Javascript
You might like
discuz7 phpMysql操作类
2009/06/21 PHP
php中cookie的使用方法
2014/03/29 PHP
PHP面向对象详解(三)
2015/12/07 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Python图片的横坐标汉字实例
2019/12/04 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
调解员先进事迹材料
2014/02/07 职场文书
学生请假条格式
2014/04/11 职场文书
保护环境建议书300字
2014/05/13 职场文书
2014年文员工作总结
2014/11/18 职场文书
老公保证书怎么写
2015/02/26 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python