1、表单验证<form></form>

(1).非空验证(去空格)

(2).对比验证(跟一个值对比)

(3).范围验证(根据一个范围进行判断)

(4).固定格式验证:电话号码,身份证号,邮箱,信用卡号等的验证;需要用到正则表达式来进行验证。

(5).其它验证

2、正则表达式

用符号来描述书写规则:/ 中间写正则表达式 /

^ :匹配开头,$:匹配结尾 ; /^ve/以ve开头的 /ve$/以ve结尾

\d:一个任意的数字

\w:一个任意的数字或字母

\s:一个任意的字符串

{n}:把左边的表达式重复n遍

{m,n}:把左边的表达式重复至少m遍,至多n遍     {m, }:把左边的表达式重复至少m遍,,至多不限

+:左边的表达式,至少出现一次,至多不限,相当于{1,}

*:左边的表达式,至少出现0次,至多不限,相当于{0,}

?:左边的表达式,至少出现0次,至多出现1次,相当于{0,1}

[a,b,c]:只能取方括号中内容之一

[a-z]或[1-9]:在范围中取其一

|:代表或者; ():优先级; \:转义--“\( \)”这个才是要出现的小括号,需要转义

3、事件

事件有三要素:事件源、事件数据、事件处理程序

事件冒泡:当元素嵌套的时候,内部元素激发某个事件后,默认情况下外部元素相应的事件也会跟着依次触发

可以加return false;是阻止默认操作

onclick: 鼠标单击触发

ondblclick: 双击触发

onmouseover: 鼠标移动上面触发

onmouseout: 鼠标离开时触发

onmousemove: 鼠标在上面移动时触发

onchange: 只要内容改变触发

onblur: 失去焦点时触发

onfocus: 获得焦点时触发

onkeydown: 按键按下的时候触发

onkeyup:按键抬起来的时候触发

onkeypress:事件在用户按下并放开任何字母数字键时发生。但是系统按钮(例如:箭头键、功能键)无法得到识别。

正则表达式补充:

建立正则表达式的方法:

var patten= new RegExp(/^[0-9]{17}[0-9|X]$/);/*RegExp()括号里面的式子需要自己定义:

1、[]里面只有一个元素

2、()里面可以写一个单词或者式子

3、{}里面表示数量

4、^:以某个元素开头,写在元素前面

5、$:以某个元素结束,写在元素后面*/

例:

1、正则表达式验证身份证:

身份证:<input type="text" id="1"  />

/*javascript部分*/

var a= document.getElementById("1").value;

var patten= new RegExp(/^[0-9]{17}[0-9|X]$/);

if(patten.test(a))

{

  alert("输入正确");

}

else

{

   alert("输入错误");

}

2、正则表达式验证邮箱:

邮箱:<input type="text" id="2" /><input type="button" value="提交" onclick="mail()" />

function mail()

{

  var patten2=new RegExp(/^[0-9|A-z|_]{1,17}[@][0-9|A-z]{1,3}.(com)$/)

  var mail = document.getElementById("2").value;

  if(patten2.test(mail))

   {

    alert("输入正确");

  }

  else

  {

    alert("输入错误");

  }

}

常用正则表达式:

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}    评注:匹配形式如 0511-4405222 或 021-87888822    

匹配腾讯QQ号:[1-9][0-9]{4,}                   评注:腾讯QQ号从10000开始    

匹配中国邮政编码:[1-9]d{5}(?!d)            评注:中国邮政编码为6位数字    

匹配身份证:d{15}|d{18}                    评注:中国的身份证为15位或18位    

匹配ip地址:d+.d+.d+.d+                        评注:提取ip地址时有用    

匹配特定数字:

^[1-9]d*$    //匹配正整数    

^-[1-9]d*$   //匹配负整数    

^-?[1-9]d*$   //匹配整数    

^[1-9]d*|0$  //匹配非负整数(正整数 + 0)    

^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)    

^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数    

^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数    

^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数    

^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)    

^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)    

评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:    

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串    

^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串    

^[a-z]+$  //匹配由26个英文字母的小写组成的字符串    

^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串    

^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:    

只能输入数字:“^[0-9]*$”    

只能输入n位的数字:“^d{n}$”    

只能输入至少n位数字:“^d{n,}$”    

只能输入m-n位的数字:“^d{m,n}$”    

只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”    

只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”    

只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”    

只能输入非零的正整数:“^+?[1-9][0-9]*$”    

只能输入非零的负整数:“^-[1-9][0-9]*$”    

只能输入长度为3的字符:“^.{3}$”    

只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”    

只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”    

只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”    

只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”    

只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”

验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,    只能包含字符、数字和下划线。    

验证是否含有^%&'',;=?$"等字符:“[^%&'',;=?$x22]+”    

只能输入汉字:“^[u4e00-u9fa5],{0,}$”    

验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”    

验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”    

验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”    正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,    “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。    

验证身份证号(15位或18位数字):“^d{15}|d{}18$”    

验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”    

验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”    正确格式为:“01”“09”和“1”“31”。    

匹配中文字符的正则表达式: [u4e00-u9fa5]    

匹配双字节字符(包括汉字在内):[^x00-xff]    

匹配空行的正则表达式:n[s| ]*r    

匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/    

匹配首尾空格的正则表达式:(^s*)|(s*$)    

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*    

匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

form表单验证和事件的更多相关文章

  1. form表单验证和事件、正则表达式

    1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...

  2. 2016年11月6日--form表单验证和事件、正则表达式

    1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...

  3. form表单验证-Javascript

    Form表单验证: js基础考试内容,form表单验证,正则表达式,blur事件,自动获取数组,以及css布局样式,动态清除等.完整代码如下: <!DOCTYPE html PUBLIC &qu ...

  4. python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)

    python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...

  5. ASP.NET MVC Form表单验证与Authorize特性

    一.Form表单验证 1.基本概念 表单验证是一个基于票据(ticket-based)[也称为基于令牌(token-based)]的系统.当用户登录系统以后,会得到一个包含基于用户信息的票据(tick ...

  6. element-ui Form表单验证

    element-ui Form表单验证规则全解 element的form表单非常好用,自带了验证规则,用起来很方便,官网给的案例对于一些普通场景完全没问题,不过一些复杂场景的验证还得自己多看文档摸索, ...

  7. django之form表单验证

    django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...

  8. form表单验证2

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作

    一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...

随机推荐

  1. 禁用visual studio实时调试器

    最近每次开机时都会出来一个visual Studio实时调试器,报“发生了未处理的异常(‘System ComponentModel.Win32Exception’,发生位置是 BSSocketSms ...

  2. MySQL主从复制数据不一致问题【自增主键】

    前言: 今天遇到主从表不一致的情况,很奇怪为什么会出现不一致的情况,因为复制状态一直都是正常的.最后检查出现不一致的数据都是主键,原来是当时初始化数据的时候导致的.现在分析记录下这个问题,避免以后再遇 ...

  3. 阿里2014校招笔试题(南大)——利用thread和sleep生成字符串的伪随机序列

    引言:题目具体描述记不大清了,大概是:Linux平台,利用线程调度的随机性和sleep的不准确性,生成一个各位均不相同的字符数组的伪随机序列.不得使用任何库函数.(这句记得清楚,当时在想线程库算不算, ...

  4. HDU 4966 GGS-DDU(最小树形图)

    n个技能,每个技能有0-a[i]的等级,m个课程,每个课程需要前置技能c[i]至少达到lv1[i]等级,效果是技能d[i]达到lv2[i]等级,花费w[i]. 输出最小花费使得全技能满级(初始全技能0 ...

  5. MyEclipse8.5可用注册码(到2018年)

    转载自:http://blog.csdn.net/z123252520/article/details/45873159 Subscriber:zy Subscriber Code:mLR8ZC-85 ...

  6. c#简易计算器

    微软MSDN的代码库就有示例 http://code.msdn.microsoft.com/Simple-Calculator-54ec8e4a using System; using System. ...

  7. NIS 报错No such map passwd.byname. Reason: Can't bind to server which serves this domain

    在NIS—client端使用命令:ypcat passwd ,把错如上题, 原因:client端ypbind服务未启动解决方法:当然是启动ypbind了,命令:service ypbind start ...

  8. July 5th, Week 28th Tuesday, 2016

    If you smile when no one else is around, you really mean it. 独处的时候你的笑容才是发自内心的笑容. Human beings are so ...

  9. python 获取控制台输入

    python想从控制台获取输入的的函数有两个一个是raw_input,一个是input. 这两个函数的区别是input获取的时候会精确到类型,假设输入的是1,那么获取的就是int型的变量,如果想输入字 ...

  10. 求n阶方阵的值(递归)

    若有n*n阶行列式A,则: |A|=A[1][1]*M[1][1]+A[1][2]*M[1][2]+...A[1][n]*M[1][n]:其中M[1][i] 表示原矩阵元素A[1][i]的代数余子式: ...