- 常用的表单验证有:
- 身份证号码
- E-mail地址
- 用户名和密码
- 表单元素是否为空
- 日期格式
- 表单选择器
:input
匹配所有input、textarea、select和button 元素
基本写法:$("表单的类选择器的值或者id值 :input");
例如:
匹配所有单项按钮
$("#myform :radio")选取<input type="radio" />元素
属性过滤选择器
:enabled
匹配所有可用元素
$(" #userform :enabled" )匹配form内部除编号输入框外的所有元素
:disabled
匹配所有不可用元素
$(" #userform :disabled" )匹配编号输入框
:checked
匹配所有被选中元素(复选框、单项按钮、select 中的option)
$(" #userform :checked" )匹配所有已经被选中的复选框的选项
:selected
匹配所有选中的option 元素
$(" #userform :selected" ) 匹配“家乡”中的“北京”选项
3.表单验证事件和方法
事件
onblur:失去焦点,当光标离开某个文本框时触发
onfocus:获得焦点,当光标进入某个文本框时触发
将οnblur=“函数名(参数)”写在input标签中,然后通过编写相关函数内容来实现某种功能。
例如:
方法
blur() 从文本域中移开焦点
focus() 在文本域中设置焦点,即获得鼠标光标
select() 选取文本域中的内容,突出显示输入区域的内容
4.正则表达式
- 简单模式
只能表示具体的匹配
示例:
var reg=/china/;
var reg=/abc8/;
- 复合模式
可以使用通配符表达更为抽象的规则模式
示例:
var reg=/^\w+$/;
var reg=/^\w+@\w+\.((com)|(cn)|(com.cn))$/;
jkjp@qq.com jkjkp2000@163.com.cn jkjkp@sina.cn
\w+ --》匹配 jkjkp
- 正则表达式/^\w?/ 未使用$符号结束 和有$区别
$代表以该正则表达式结尾的字符串例如
abc$只匹配123abc,rtyabc
如果只是abc的话,那么123abc456,rtfabcfgh都可以匹配
加了^ 表示^后面的第一位字符必须匹配的字符串首位相同,不加的话任意顺序匹配。
var reg=/abc/; alert(reg.test("dcabca")); true var reg=/^abc/; alert(reg.test("dcabca")); false var reg=/^abc/; alert(reg.test("abcseda")); true var reg=/^abc$/; alert(reg.test("abcseda")); false
|
- 正则表达式符号
/…/ 代表一个模式的开始和结束
^ 匹配字符串的开始
$ 匹配字符串的结束
\s 任何空白字符
\S 任何非空白字符
\d 匹配一个数字字符,等价于[0-9]
\D 除了数字之外的任何字符,等价于[^0-9]
\w 匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]
\W 任何非单字字符,等价于[^a-zA-z0-9_]
. 除了换行符之外的任意字符
{n,} 匹配前一项n次,或者多次
{n,m} 匹配前一项至少n次,但是不能超过m次
* 匹配前一项0次或多次,等价于{0,}
+ 匹配前一项1次或多次,等价于{1,}
? 匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}
根据以上相关符号的含义,可以写出相应的正则表达式
- 正则表达式的常见应用
用户名、密码、电子邮箱、手机号码、身份证号码、生日、固定电话
- 常见正则
用户名:/^[a-zA-Z0-9_-]{3,16}$/
密码:/^[a-z0-9_-]{6,18}$/
年 19**|200*|201* 月 01~09|1* 日 1~9|10~29|30|31 2012-09-12 0?[1-9]
1998-08-13
出生日期:/^((19\d{2})|(200\d)|(201[0-6]))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/
电子邮箱:/^([a-z0-9_\.-]+)@([\da-z-]+)\.((com)|(cn)|(com.cn))$/
/^\w+@\w+\.((com)|(cn)|(com.cn))$/
jk@yahoo.com.cn
匹配国内电话号码:(\d{3}-\d{8})|(\d{4}-\d{7})
评注:匹配形式如 0511-4405222 或 021-87888822
匹配身份证:\d{15}|\d{18}
评注:中国大陆的身份证为15位或18位