正则表达式
一、定义正则表达式
1.首先用两个斜杠(//)
(1)var reg = //
2.在斜杠中写入自己想要的范围
(2)var reg = /a[0-9]/
3.给这个式子加上开始(^)和结束($)符号是它严格按照我们自己定的规则执行
(3)var reg =/^a[0-9]$/
注意:在正则表达式中 中不可以有空格
二、匹配字符
A、匹配一个字符
① 如果放到正则表达式的开始 就意味着是字符串的开始(例:第一个字符为a第二个字符为0-3中任意中字符)
var reg =/^a[0-9]$/
②如果放到正则表达式中的中括号里 就表达的是代表不是 把中括号的值取反(例:第一个字符为a第二个字符为除了0-3的字符,其他的任意字符)
var reg2 = /^a[^0-3]$/
③单个字符的范围是跳跃式的 直接在中括号中写符合范围的字符
var reg3 = /^a[5-9ao]$/
var reg3 =/^a[5-9a-z]$/
var reg3 =/^a[^5-9aou-z]$/
B、重复匹配
(2)前面的规则可以重复用多少次
①在大括号里写一个数字(n) 相当于写了n次
Var reg4 =/^a[0-9]{3}$/ 相当于运行了三次
②在大括号里写两个数字(n,m) 相当于一个范围 最少n次 最多m次
Var reg4 =/^a[0-9]{2,3}$/ 相当于最少运行两次,最多运行三次
③在大括号里的逗号前写一个数字(n),最少运行n次
C、表达式的简化
1)[0-9] -> /d
2)[^0-9] -> /D (/d取反)
3)[A-Za-z0-9] -> /w
4)[^A-Za-z0-9] -> /W
5){0,} -> *
6){1,} -> +
7){0,1} -> ?
8)\s 可以匹配任何空白字符(空格或换行)
9)\S可以匹配非空白字符(没有空格)
10).出换行符之外的任意字符(含空格)
若正则表达式放到字符串中 需要在特殊符号(*,?,+)前加转义字符(/)
D、重点
//校验手机号码:必须以数字开头,除数字外,可含有“-”
function tel(s){
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) {
return false
}else{
return true
}
}
//校验密码:只能输入6-20个字母、数字、下划线
function psw(s){
var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) {
return false
}else{
return true
}
}
//校验用户姓名:只能输入1-30个以字母开头的字串
function userName(s){
var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) {
return false
}else{
return true
}
}
//年龄0-120
最终结果: /^120$ | ^[ 1 - 9 ]$ | ^((1[0-1])|[1-9]) \d$ /