从阿里妈妈发现的几个不错的表单验证函数

//--------
// 检查当前浏览器是否为Netscape
//--------
function isNetscape(){
    app=navigator.appName.substring(0,1);
    if (app=='N') return true;
    else {return false;}
}

//--------
// 保存当前Form表单(仅适用于IE浏览器)
//--------
function formSaveCheck(fileName){
    if(isNetscape()){alert("Sorry, these function is not supported")}    
    else document.execCommand('SaveAs',null,fileName)
}

//--------
// 校验数据的合法性
//--------
function isValidReg( chars){
    var re=/<|>|\[|\]|\{|\}|『|』|※|○|●|◎|§|△|▲|☆|★|◇|◆|□|▼|㊣|﹋|⊕|⊙|〒|ㄅ|ㄆ|
ㄇ|ㄈ|ㄉ|ㄊ|ㄋ|ㄌ|ㄍ|ㄎ|ㄏ|ㄐ|ㄑ|ㄒ|ㄓ|ㄔ|ㄕ|ㄖ|ㄗ|ㄘ|ㄙ|ㄚ|ㄛ|ㄜ|ㄝ|ㄞ|ㄟ|ㄢ|ㄣ|ㄤ|ㄥ|ㄦ|ㄧ|ㄨ|ㄩ
|■|▄|▆|\*|@|#|\^|\\/;
    if (re.test( chars) == true) {
        return false;
    }else{
        return true;
    }    
}

//--------
// 检查数据的长度是否合法
//--------
function isValidLength(chars, len) {
    if (chars.length > len) {
        return false;
    }
    return true;
}

//--------
// 校验URL的合法性
//--------
function isValidURL( chars ) {
    //var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)((((\w+(-*\w*)+)\.)+((com)|
(net)|(edu)|(gov)|(org)|(biz)|(aero)|(coop)|(info)|(name)|(pro)|(museum))(\.([a-z]{2}))?)|((\w+(-
*\w*)+)\.(cn)))$/;
    var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(\S+\.\S+)$/;
    //var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(((((\w+(-*\w*)+)\.)+((com)|
(net)|(edu)|(gov)|(org)|(biz)|(aero)|(coop)|(info)|(name)|(pro)|(museum)|(cn)|(tv)|(hk))(\.([a-z]
{2}))?)|((\w+(-*\w*)+)\.(cn)))((\/|\?)\S*)*)$/;
    if (!isNULL(chars)) {
        chars = jsTrim(chars);
        if (chars.match(re) == null)
            return false;
        else
            return true;
    }
    return false;
}

//--------
// 校验数字的合法性
//--------
function isValidDecimal( chars ) {
    var re=/^\d*\.?\d{1,2}$/;
    if (chars.match(re) == null)
        return false;
    else
        return true;
}

//--------
// 校验数字的合法性
//--------
function isNumber( chars ) {
    var re=/^\d*$/;
    if (chars.match(re) == null)
        return false;
    else
        return true;
}

//--------
// 校验邮编的合法性
//--------
function isValidPost( chars ) {
    var re=/^\d{6}$/;
    if (chars.match(re) == null)
        return false;
    else
        return true;
}

//--------
// 去掉数据的首尾空字符
//--------
function jsTrim(value){
  return value.replace(/(^\s*)|(\s*$)/g,"");
}

//--------
// 校验数据是否为空(当数据为空字符时也为NULL)
//--------
function isNULL( chars ) {
    if (chars == null)
        return true;
    if (jsTrim(chars).length==0)
        return true;
    return false;
}

//--------
// 校验Email的合法性
//--------
function checkEmail (fieldName, bMsg) 
{
    var emailStr = fieldName.value;

var emailPat=/^(.+)@(.+)$/
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    var validChars="\[^\\s" + specialChars + "\]"
    var quotedUser="(\"[^\"]*\")"
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    var atom=validChars + '+'
    var word="(" + atom + "|" + quotedUser + ")"
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=emailStr.match(emailPat)
    if (matchArray==null) 
    {
        if (bMsg) alert("Email address seems incorrect (check @ and .'s)")
        return false
    }
    var user=matchArray[1]
    var domain=matchArray[2]

// See if "user" is valid 
    if (user.match(userPat)==null) 
    {
        if (bMsg) alert("The Email address seems incorrect.")
        // fieldName.focus();
        return false
    }

/* if the e-mail address is at an IP address (as opposed to a symbolic
       host name) make sure the IP address is valid. */
    var IPArray=domain.match(ipDomainPat)
    if (IPArray!=null) 
    {
        for (var i=1;i<=4;i++)
        {
            if (IPArray[i]>255)
            {
                if (bMsg) alert("Destination IP address is invalid!")
                return false
            }
        }
        return true
    }

// Domain is symbolic name
    var domainArray=domain.match(domainPat)
    if (domainArray==null) 
    {
        if (bMsg) alert("The domain name doesn't seem to be valid.")
        return false
    }

/* domain name seems valid, but now make sure that it ends in a
    three-letter word (like com, edu, gov) or a two-letter word,
    representing country (uk, nl), and that there's a hostname preceding 
    the domain or country. */

var atomPat=new RegExp(atom,"g")
    var domArr=domain.match(atomPat)
    var len=domArr.length
    if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
    {
        // the address must end in a two letter or three letter word.
        if (bMsg) alert("The address must end in a three-letter domain, or two letter country.")
        return false
    }

// Make sure there's a host name preceding the domain.
    if (len<2)
    {
        if (bMsg) alert("This address is missing a hostname!")
        return false
    }

// If we've got this far, everything's valid!
    return true;
}

//--------
// 判断是否为闰年
//--------
function isLeapYear(year){
  if (year % 4 != 0)
    return false;
  if (year % 400 == 0)
    return true;
  if (year % 100 == 0)
    return false;
  return true;
}

//--------
// 校验日期的合法性
//--------
function validateDate(day,month,year)
{
    if ((day<=0)||(month<=0)||(year<=0))
        return false;

if ((month>=1)&&(month<=12)) {
        if (month == 2) {
            if (isLeapYear(year)) {
                if (day<=29) 
                    return true;
            } else {
                if (day<=28)
                    return true;
                else
                    return false;
            }
        } else if ((month==4)||(month==6)||(month==9)||(month==11)) {
            if (day<=30)
                return true;
            else
                return false;
        } else {
            if (day<=31)
                return true;
            else
                return false;
        }
    }

return false;
}

//--------
// 判断数据是否包含都是Single Byte
//--------
function isSingleByteString(str)
{
   var rc = true;
   var j = 0, i = 0;
   for (i=0; i<str.length; i++) {
     j = str.charCodeAt(i);
     if (j>=128) {
       rc = false;
       break;
     }
   }
   return rc;
}

var submitEvent = true;
function checkDoubleSubmit(){
    return submitEvent;
}

//--------
// 弹出窗口
// 参数:url-弹出窗口显示URL的内容
//       w-弹出窗口的宽度
//       h-弹出窗口的高度
//       isCenter-控制弹出窗口是否在屏幕中央显示,值为true/false
//       isResizable-控制弹出窗口是否可以改变大小,值为true/false
//       isScroll-控制弹出窗口是否有滚动条,值为true/false
//--------
function popupWindow(url,w,h,isCenter,isResizable,isScroll) {
    if (isNULL(url)) return;
    var scrLeft = 0;
    var scrTop = 0;
    var scroll = "no";
    var resize = "no";
    if (isCenter) {
        scrLeft = (screen.width-w)/2;
        scrTop = (screen.height-h)/2;
    }
    if (isResizable) resize="yes";
    if (isScroll) scroll = "yes";
    window.open(url, 'popupWindow', 
'height='+h+',width='+w+',top='+scrTop+',left='+scrLeft+',toolbar=no,menubar=no,scrollbars='+scrol
l+',resizable='+resize+',location=no,status=no');
}

//--------
// 弹出窗口
// 参数:url-弹出窗口显示URL的内容
//       w-弹出窗口的宽度
//       h-弹出窗口的高度
//       isCenter-控制弹出窗口是否在屏幕中央显示,值为true/false
//       isResizable-控制弹出窗口是否可以改变大小,值为true/false
//       isModal-控制弹出窗口是否为模式或非模式对话框,值为ture/false
//--------
function popupModalWindow(url,w,h,isCenter,isResizable,isModal) {
    if (isNULL(url)) return;
    var scrLeft = 0;
    var scrTop = 0;
    var resize = "no";
    var cnt = "no";
    if (isCenter) {
        cnt="yes";
        scrLeft = (screen.width-w)/2;
        scrTop = (screen.height-h)/2;
    }
    if (isResizable) resize="yes";
    if (isModal)
        window.showModalDialog(url, 'popupWindow', 
'dialogWidth:'+w+'px;dialogHeight:'+h+'px;dialogLeft:'+scrLeft+'px;dialogTop:'+scrTop+'px;center:'
+cnt+';help:no;resizable:'+resize+';status:no');
    else
        window.showModelessDialog(url, 'popupWindow', 
'dialogWidth:'+w+'px;dialogHeight:'+h+'px;dialogLeft:'+scrLeft+'px;dialogTop:'+scrTop+'px;center:'
+cnt+';help:no;resizable:'+resize+';status:no');
}

//--------
// 弹出窗口
// 参数:url-弹出窗口显示URL的内容
//       w-弹出窗口的宽度
//       h-弹出窗口的高度
//       isCenter-控制弹出窗口是否在屏幕中央显示,值为true/false
//       isResizable-控制弹出窗口是否可以改变大小,值为true/false
//       isScroll-控制弹出窗口是否有滚动条,值为true/false
//--------
function openWindowCenter(urll,w,h){
  var top=(window.screen.height-h)/2;
  var left=(window.screen.width-w)/2;
  var param='toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no, status=no,top=';
  param=param+top;
  param=param+',left=';
  param=param+left;
  param=param+',height='+h;
  param=param+',width='+w;
  var w=window.open (urll,"",param)
  if(w!=null && typeof(w)!="undefined"){
        w.focus();
  }
}

<script language="javascript">
function encodeHtmlForText(text){
  text = text.replace(new RegExp("&","gm"),"&");
  text = text.replace(new RegExp("<","gm"),"<");
  text = text.replace(new RegExp(">","gm"),">");
  text = text.replace(new RegExp("\'","gm"),"'");
  text = text.replace(new RegExp("\"","gm"),""");
  return text;
}
function encodeHtmlForURL(url){
  url = url.replace(new RegExp("<","gm"),"<");
  url = url.replace(new RegExp(">","gm"),">");
  url = url.replace(new RegExp("\'","gm"),"'");
  url = url.replace(new RegExp("\"","gm"),""");
  return url;
}
function title_url_change(oipt) {
  if(oipt){
      var cnt = oipt.value.length;
    if(cnt<17){
        $i("cntTitle").style.color="blue";
        $i("cntTitle").innerHTML="(您已输入"+cnt+"字)";
    }else{
        $i("cntTitle").style.color="red";
        $i("cntTitle").innerHTML="(文本超长!您已输入"+cnt+"字)";
    }
  }
  var title = $i('_fmm.t._0.ti').value;
  var clickurl = $i('_fmm.t._0.cl').value;
  title = encodeHtmlForText(title);
  clickurl = encodeHtmlForURL(clickurl);
  $i('adTitle').innerHTML = '<a href='+clickurl+'>'+title+'</a>';
}
function title_change() {
  var title = $i('_fmm.t._0.ti').value;
  title = encodeHtmlForText(title);
  $i('adTitle').innerHTML = title;
}
function description_change(oipt) {
  if(oipt){
      var cnt = oipt.value.length;
    if(cnt<33){
        $i("cntDesc").style.color="blue";
        $i("cntDesc").innerHTML="(您已输入"+cnt+"字)";
    }else{
        $i("cntDesc").style.color="red";
        $i("cntDesc").innerHTML="(文本超长!您已输入"+cnt+"字)";
    }
  }
  var desc = $i('_fmm.t._0.d').value;
  desc = encodeHtmlForText(desc);
  $i('adDesc').innerHTML = desc;
}
function dispurl_change() {
  var dispurl = $i('_fmm.t._0.di').value;
  dispurl = encodeHtmlForURL(dispurl);
  $i('adDispUrl').innerHTML = dispurl;
}
function linkurl_change() {
  var clickurl = $i('_fmm.t._0.cl').value;
  clickurl = encodeHtmlForURL(clickurl);
  $i('adClickUrl').innerHTML = clickurl;
}
function check_count($str){
if (!$str) return 0;
var $c=0;
for (var $i=0;$i<$str.length;$i++){
   if ($str.charCodeAt($i) > 255){
        $c++;
        $c++;
    }else
        $c++;
}
return $c;
}
function validation() {
    $i('_fmm.t._0.n').value = jsTrim($i('_fmm.t._0.n').value);
    $i('_fmm.t._0.ti').value = jsTrim($i('_fmm.t._0.ti').value);
    $i('_fmm.t._0.d').value = jsTrim($i('_fmm.t._0.d').value);
    $i('_fmm.t._0.di').value = jsTrim($i('_fmm.t._0.di').value);
    $i('_fmm.t._0.cl').value = jsTrim($i('_fmm.t._0.cl').value);

var adName = $i('_fmm.t._0.n').value;
    var adtitle = $i('_fmm.t._0.ti').value;
    var addescription = $i('_fmm.t._0.d').value;
    var addispurl = $i('_fmm.t._0.di').value;
    var adclickurl = $i('_fmm.t._0.cl').value;
    var msg="";

$i('_fmm.t._0.t').value = jsTrim($i('_fmm.t._0.t').value);

var tags = $i('_fmm.t._0.t').value;

if(!isValidReg(tags)){
        msg=msg+"关键词包含非法字符!\n";
    }
    if(!isValidLength(tags,32)){
        msg=msg+"您输入的关键词长度超过限制!\n"
    }

if(isNULL(adName)){
        msg=msg+"请输入广告名称!\n";
    }
    if(!isValidReg(adName)){
        msg=msg+"广告名称包含非法字符!\n";
    }
    if(!isValidLength(adName,16)){
        msg=msg+"输入广告名称长度超过限制!\n"
    }
    if(isNULL(adtitle)){
        msg=msg+"请输入标题内容!\n";
    }
    if(!isValidLength(adtitle,16)){
        msg=msg+"输入标题长度超过限制!\n";
    }
    if(!isValidReg(adtitle)){
        msg=msg+"标题内容包含非法字符!\n";
    }
    if(isNULL(addescription)){
        msg=msg+"请输入描述内容!\n";
    }
    if(!isValidLength(addescription,32)){
        msg=msg+"输入描述长度超过限制!\n";
    }
    if(!isValidReg(addescription)){
        msg=msg+"描述内容包含非法字符!\n";
    }
    if(isNULL(addispurl)){
        msg=msg+"请输入显示网址内容!\n";
    }
    if(!isValidLength(addispurl,1024)){
        msg=msg+"输入显示网址长度超过限制!\n";
    }
    if(!isValidURL(addispurl)){
        msg=msg+"显示网址输入不合法!\n";
    }
    if(isNULL(adclickurl)){
        msg=msg+"请输入链接网址内容!\n";
    }
    if(!isValidLength(adclickurl,512)){
        msg=msg+"输入链接网址长度超过限制!\n";
    }
    if(!isValidURL(adclickurl)){
        msg=msg+"链接网址输入不合法!\n";
    }
    if(getHostName(adclickurl)!=getHostName(addispurl)){
        msg=msg+"显示URL必须与链接URL位于同一域名下\n";
    }
    if(!isNULL(msg)){
        alert(msg);
        return false;
    }
    return true;
}

function getHostName(a){
    a = a.toLowerCase();
    var headlength = 0;
    if(a.indexOf("http://")==0){
        headlength = 7;
    }else if(a.indexOf("https://")==0){
        headlength = 8;
    }
    a = a.substr(headlength);
    if(a.indexOf("/")>-1){
        a = a.substr(0,a.indexOf("/"));
    }
    return a;
}

function addConfirm(form) {
    var isvalidate = validation();
    if(isvalidate){
        form.submit();
    }else{
        return false;
    }
}
function doTest() {
    var adclickurl = $i('_fmm.t._0.cl').value;
    var msg = '';
    if(isNULL(adclickurl)){
        msg=msg+"请输入链接网址内容!\n";
    }
    if(!isValidLength(adclickurl,512)){
        msg=msg+"输入链接网址长度超过限制!\n";
    }
    if(!isValidURL(adclickurl)){
        msg=msg+"链接网址输入不合法!\n";
    }
    if(!isNULL(msg)){
        alert(msg);
        return false;
    }
    popup = window.open(adclickurl, 'popupnav', 
'width=400,height=300,left=480,top=250,resizable=1,scrollbars=yes');
    return false;
}
function doInit() {
    var dispURL = $i('_fmm.t._0.di');
    var clickURL = $i('_fmm.t._0.cl');
    if(clickURL.value == '') {
       clickURL.value = 'http://';
    }
    if(dispURL.value == '') {
       dispURL.value = 'http://';
    }
}
doInit();
</script>

(0)

相关推荐

  • 从阿里妈妈发现的几个不错的表单验证函数

    //-------- // 检查当前浏览器是否为Netscape //-------- function isNetscape(){     app=navigator.appName.substring(0,1);     if (app=='N') return true;     else {return false;} } //-------- // 保存当前Form表单(仅适用于IE浏览器) //-------- function formSaveCheck(fileName){   

  • 推荐个不错的表单Input的高级用法11例

    1.取消按钮按下时的虚线框  在input里添加属性值 hideFocus 或者 HideFocus=true 2.只读文本框内容  在input里添加属性值 readonly 3.防止退后清空的TEXT文档(可把style内容做做为类引用)  <INPUT style=behavior:url(#default#savehistory); type=text id=oPersistInput> 4.ENTER键可以让光标移到下一个输入框  <input onkeydown="

  • python模拟登陆阿里妈妈生成商品推广链接

    淘宝官方有获取商品推广链接的API,但该API属于增值API 普通开发者没有调用权限 需要申请开通 备注:登陆采用的是阿里妈妈账号登陆非淘宝账号登陆 复制代码 代码如下: #coding:utf-8__author__ = 'liukoo'import urllib,urllib2,cookielib,refrom hashlib import md5class alimama:    def __init__(self):        self.header = {'User-Agent':

  • JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码

    本文实例讲述了JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码.分享给大家供大家参考.具体如下: 这是一款阿里妈妈网站顶部banner代码,采用滑出的方式,一个经典的工具条代码,可以当作菜单来用,同时还有完善的功能,可以适时关闭工具条,整体效果设计美观,简洁漂亮. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-top-float-banner-alimama-style-codes/ 具体代码如下: <!DOCTYPE ht

  • 比较不错的asp单表单字段多条件查询

    用途:文章表内文章关键字查询 查询格式: 百度 google  百度好还是google好 百度+google (也可不输入条件全部查询) <!--#include file="conn.asp"--> <% Function SearshSQL(Tname,Lname,Str) 'Tname-表名 Lname-列名 Str-查询的字符 If Trim(Str)="" then         MySql="Select * From &q

  • 强效、方便的表单通用检测JS 不错

    // 表单通用检测JS by www.it2048.com 整理/制作 H.Q.J 2007/1/10 //自定义属性解释(IE支持): //ii_chname:表示该数据的中文名称 //ii_minsize:表示允许输入的最小长度,单位字节 //ii_maxsize:表示允许输入的最大长度,单位字节 //ii_type:输入的数据类型 //ii_null:表示输入值是否允许为空.为yes时允许为空. //ii_compare:比交是否与某项(ID)值相同 function chkRadio(o

  • Python的Flask框架中web表单的教程

     概要 在前面章节我们为主页定义了一个简单的模板,部分尚未实现的模块如用户或帖子等使用模拟的对象作为临时占位. 本章我们将看到如何利用web表单填补这些空白. web表单是web应用中最基本的构建要素,我们将通过表单来实现用户发帖和应用登录功能. 完成本章内容你需要基于前面章节完成的微博应用代码,请确认这些代码已安装并能正常运行. 配置 Flask-WTF是WTForms项目的Flask框架扩展,我们将用他来帮助我们处理web表单. 大部分Flask扩展都需要定义相关配置项,所以我们先来在应用根

  • PHP常用函数和常见疑难问题解答

    首先介绍下比较简单但必不可少且实用的知识,可以当手册查询,适合像我一样的新手看. PHP常用库函数介绍 一.PHP字符串操作常用函数1.确定字符串长度 int strlen(string str)2.比较两个字符串a. strcmp函数对两个字符串进行二进制安全的比较,并区分大小写int strcmp(string str1,string str2)b. 以不区分大小写的方式比较两个字符串int strcasecmp(string str1,string str2) 3.求两个字符串相同部分in

  • jQuery插件form-validation-engine正则表达式操作示例

    本文实例讲述了jQuery插件form-validation-engine正则表达式操作.分享给大家供大家参考,具体如下: form-validation-engine是一个不错的表单验证插件,示例如下: (function($) { $.fn.validationEngineLanguage = function() {}; $.validationEngineLanguage = { newLang: function() { $.validationEngineLanguage.allRu

  • 一些收集整理非常不错的JS效果代码

    按A就会跳转到练习的网页,请按A [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 类似与QQ的好友/黑名单之类的树型菜单 New Document if (!document.getElementById) document.getElementById = function() { return null; } function initializeMenu(menuId, actuatorId) { var menu = document.getElementById(menuI

随机推荐