`
wangzi6hao
  • 浏览: 209622 次
  • 性别: Icon_minigender_1
  • 来自: sdf
社区版块
存档分类
最新评论

javascript合法验证 js数据验证、js email验证、js url验证、js长度验证、js数字验证等(弹出对话框形式)

阅读更多

2008-11-07 02:51

/**
* 得到中英文字符长
* @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;
    }
}
 
分享到:
评论

相关推荐

    Java 员工管理系统项目源代码(可做毕设项目参考)

    Java 员工管理系统项目是一个基于 Java 编程语言开发的桌面应用程序,旨在管理员工的信息、津贴、扣除和薪资等功能。该系统通过提供结构和工具集,使公司能够有效地管理其员工数据和薪资流程。 系统特点 员工管理:管理员可以添加、查看和更新员工信息。 津贴管理:管理员可以添加和管理员工的津贴信息。 扣除管理:管理员可以添加和管理员工的扣除信息。 搜索功能:可以通过员工 ID 搜索员工详细信息。 更新薪资:管理员可以更新员工的薪资信息。 支付管理:处理员工的支付和生成支付记录。 模块介绍 员工管理模块:管理员可以添加、查看和更新员工信息,包括员工 ID、名字、姓氏、年龄、职位和薪资等。 津贴管理模块:管理员可以添加和管理员工的津贴信息,如医疗津贴、奖金和其他津贴。 扣除管理模块:管理员可以添加和管理员工的扣除信息,如税收和其他扣除。 搜索功能模块:可以通过员工 ID 搜索员工详细信息。 更新薪资模块:管理员可以更新员工的薪资信息。 支付管理模块:处理员工的支付和生成支付记录 可以作为毕业设计项目参考

    CAD实验报告:制药车间动力控制系统图、烘烤车间电气控制图、JSJ型晶体管式时间继电器原理图、液位控制器电路图

    CAD实验报告:制药车间动力控制系统图、烘烤车间电气控制图、JSJ型晶体管式时间继电器原理图、液位控制器电路图

    使用 Arduino 和 Python 实时数据绘图的温度监控系统源码(可做毕设项目参考)

    项目简介: 本项目将教您如何使用 Arduino 和 Python 实时数据绘图来构建温度监控系统。通过这个项目,您将学习如何从 Arduino 到 Python 进行串行通信,并实时收集和监控温度数据。 项目目标: 实时监控和绘制温度数据。 提供用户友好的操作界面。 提高用户的编程技能,特别是Arduino和Python的应用能力。 项目功能 实时温度监控: 传感器每秒读取一次温度数据,并通过串行监视器发送到Python程序。 数据保存: Python程序将温度数据保存到CSV文件中。 实时数据绘图: 使用Matplotlib库实时绘制温度数据,温度在Y轴,时间在X轴。 项目优势 高效的数据监控: 实时监控和绘制温度数据,提高数据监控的效率。 用户友好: 界面简洁,操作简单,用户可以轻松使用该应用程序。 提高编程技能: 通过实践项目,提高对Arduino和Python的应用能力。 项目技术细节 项目详情: 项目名:使用 Arduino 和 Python 实时数据绘图的温度监控系统 项目平台:Arduino 和 Python 使用的编程语言:C++(Arduino)、Python ID

    软件测试-软件测试方案pdf

    本测试计划提供给深圳移动公司PMS核心小组成员,对PMS EXPRESS 系统进行功能测试。测试计划主要通过对基站项目管理过程的模拟,从项目的立项开始直至基站的验收交付以及知识沉淀,对基站建设全过程中涉及的管理内容进行模拟测 试。测试计划中设计了两个基站项目一明宁花园、椰风海岸。其中明宁花园按 原计划如期完工,而椰风海岸因为设备没能如期到货导致了个整个项目工期的延误。

    博物馆智能化系统的解决方案.pptx

    博物馆智能化系统的解决方案.pptx

    基于STM32的电子罗盘

    基于STM32的电子罗盘试验

    【matlab GUI仿真】说明:GUI界面设计,四旋翼飞机仿真 VR界面设计

    【matlab GUI仿真】说明:GUI界面设计,四旋翼飞机仿真。VR界面设计。 (GUI interface design, four rotor aircraft simulation. The VR interface design. ) 【matlab GUI仿真】说明:GUI界面设计,四旋翼飞机仿真。VR界面设计。

    基于VHDL的倒车雷达项目(免费提供全部源码)

    项目简介: 本项目实现了一个基于VHDL(VHSIC硬件描述语言)的倒车雷达系统。倒车雷达用于检测车辆后方障碍物的距离,以辅助驾驶员安全倒车。系统通过超声波传感器检测距离,并使用LED显示或蜂鸣器提示障碍物的接近程度。 项目模块: 传感器接口模块: 处理超声波传感器的信号。 发送触发信号,接收回波信号。 计算回波时间,进而计算距离。 距离计算模块: 根据传感器回波时间计算距离。 处理和转换距离数据,准备用于显示和警报。 警报显示模块: 基于计算出的距离提供视觉和听觉警报。 使用LED显示不同的距离范围。 使用蜂鸣器发出不同频率的警报声。 控制模块: 控制各模块的协调工作。 管理超声波传感器的触发和数据采集周期。

    2024年动力电池回收行业市场分析报告.pptx

    行业报告

    ssm框架在线课堂微信小程序源码+项目说明(高分毕设)

    毕业设计ssm框架在线课堂微信小程序源码+项目说明(高分毕设).zip 个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 毕业设计ssm框架在线课堂微信小程序源码+项目说明(高分毕设).zip 个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 毕业设计ssm框架在线课堂微信小程序源码+项目说明(高分毕设).zip 个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 项目主要功能: 该项目是一款针对在线课堂微信小程序的数据管理系统,旨在便捷用户对小程序中的信息进行有效管理。系统设计注重功能完善和用户体验,力求使用户能轻松找到所需信息。采用JAVA技术开发,并结合现有成熟源代码模板,确保了平台的可操作性和实用性。关键词:在线课堂微信小程序;JAVA。

    国内锂矿加速开发,四川锂矿详细梳理

    国内锂矿加速开发,四川锂矿详细梳理

    一个基于react框架的资源文件

    一个基于react框架的资源文件 练习,xiaoyoushop分支是小优后台,screen分支是大屏项目,react分支是基于react框架,使用ts语言,vite构建的一个后台管理系统项目 练习,xiaoyoushop分支是小优后台,screen分支是大屏项目,react分支是基于react框架,使用ts语言,vite构建的一个后台管理系统项目 练习,xiaoyoushop分支是小优后台,screen分支是大屏项目,react分支是基于react框架,使用ts语言,vite构建的一个后台管理系统项目 内容来源于网络分享。仅供学习使用。请勿商用。如有侵权,请联系我。我将立即删除

    MQD企业大学建设思路与年度工作重点.pptx

    MQD企业大学建设思路与年度工作重点.pptx

    Java语言基础入门教程 Java实训教程 13.反射 共38页.pptx

    Java语言基础入门教程 Java实训教程 13.反射 共38页.pptx

    网上购物商城数据库设计报告.docx

    网上购物商城数据库设计报告.docx

    单机成本核算统计表.docx

    单机成本核算统计表.docx

    Swift语言简介.md

    Swift 是由苹果公司推出的一种现代化的编程语言,用于开发 iOS、macOS、watchOS 和 tvOS 应用程序。它结合了安全、高性能和易用性的特点,成为开发苹果平台应用程序的首选语言。

    创建一个简单的PHP页面.pdf

    创建一个简单的PHP页面

    乐视生态链生态系统介绍.pptx

    乐视生态链生态系统介绍.pptx

    tensorflow安装详细教程.pdf

    当安装TensorFlow时,我们需要按照一系列步骤来确保正确无误。以下是一个详细的TensorFlow安装教程,包括准备工作、安装步骤以及验证安装等部分。 准备工作 1. 检查系统要求 确保你的系统满足TensorFlow的硬件和软件要求。TensorFlow支持Python 3.5-3.8版本,并需要一个64位操作系统。对于GPU加速,需要支持CUDA的NVIDIA GPU。 2. 安装Python 从Python官方网站或可靠的国内镜像源下载并安装适合你操作系统的Python版本(建议Python 3.7或3.8)。 3. 安装pip pip是Python的包管理器,用于安装和管理Python包。在安装Python时,通常会同时安装pip。如果没有安装,请从pip官方网站下载并安装。 安装TensorFlow 1. 升级pip 打开命令行工具(在Windows上是CMD或PowerShell,在macOS和Linux上是Terminal)。 运行以下命令来升级pip到最新版本: bash复制代码 pip install --upgrade pip 2. 使用pip安装

Global site tag (gtag.js) - Google Analytics