正则表达式
校验表单的内容
js复杂类型
第一种
/字面量/
var reg=/abc/
//检查是否包含abc这连续的三个字母
console.log(reg)
第二种
var reg2=new RegExp("abc")
console.log(reg2)
mytext.onblur=function(){
console.log(mytext.value)
console.log(reg.test(mytext.value))
}//test包含的意思
元字符
\d 一位数字
.:匹配任何单字符,除了"\n"和放在方括号里的字符。
^:匹配输入的开始。
$:匹配输入的结束。
*:匹配前面的子表达式零次或多次。
+:匹配前面的子表达式一次或多次。
?:匹配前面的子表达式零次或一次。
\d:匹配一个数字字符。等价于[0-9]。
\s:匹配任何空白字符,包括空格、制表符、换页符。
\w:匹配字母、数字、下划线。
{n}:“n”是一个非负整数,匹配确定的“n”次。
{n,}:“n”是一个非负整数,至少匹配“n”次。
{n,m}:“n”和“m”均为非负整数,其中n<=m,最少匹配“n”次且最多匹配“m”次。
`` : 转义符,使之后的字符恢复字面意义。
大写代表非例\D非数字
边界符
^ :表示匹配的开始。如果在一个字符集合(用方括号标明)的开始使用,那么就表示这个字符集合里的字符在匹配的地方不能出现。
$ :表示匹配的结束。
\b :表示单词的边界。这个边界的两侧一定是一个单词字符(通常是字母、数字或下划线)和一个非单词字符或者就是字符串的开始或结束。
\B :表示非单词边界。也就是限定单词字符必须出现在两侧。
限定符
*:表示前面的字符可以不出现,或出现任意次(包括 1 次)。例如,“zo*”可以匹配 “z”、“zo” 及 “zoo”。
+:表示前面的字符必须至少出现一次(1次或多次)。例如,“zo+”可以匹配 “zo” 和 “zoo”,但不能匹配 “z”。
?:表示前面的字符最多只可以出现一次(0次或1次)。例如,“zo?”尽管在例如 “zoo” 中有两个 o,但只会匹配前两个字符 “zo”。
{n}:n 是一个非负整数。表示前面的字符必须出现 n 次。例如,“o{2}”不能匹配 “Bob” 中的 ‘o’,但可以匹配 “food” 中的两个 o。
{n,}:n 是一个非负整数。表示前面的模式必须至少出现 n 次。例如,“o{2,}”不能匹配 "Bob"中的’o’,但能匹配 "foooood"中的所有 o。“o{1,}” 等价于 “o+”。“o{0,}” 则等价于 “o*”。
{n,m}:m 和 n 均为非负整数,其中 n <= m。表示前面的模式出现的次数至少为 n 次,至多为 m 次。比如,“o{1,3}”将匹配 "fooooood"中的前三个 o。“o{0,1}” 等价于 “o?”。注意 n 和 m 之间不能有空格,否则会出错
特殊符号
[] (方括号): 字符集合。在方括号内的任何字符都可能出现在匹配的字符串中。[^]取反{}(花括号): 匹配一个或多个数字或字母,如a{3}匹配 "aaa",{2,6}`表示字符可以重复2到6次。| (竖线):或运算符,允许有两个可能的匹配。例如,“z|o”可以匹配 “z” 或者 “o”。() (圆括号):定义一个组,组里的字符会组合在一起按照数量限定符进行匹配
捕获exec
var reg=/\d{3}/
console.log(reg.exec("aa123aa"))
标识符 g(全局标识符) i(忽略大小写)
正则表达式的两大特性
1.懒惰
2.贪婪
var rag=/\d{1,4}?/ //加?就是非贪婪模式
console.log(reg.exec("aa123456bb"))
3.非贪婪