正则
正则表达式的用处
测试用户名(必须由字母数字下划线组成)
用户密码(必须同时包含大写小写数字)
确认密码
邮箱
电话号码
RegExp对象
创建RegExp对象实例的两种方式:
1构造函数方式
var reg=new RegExp(“表达式”,“附加参数”);
2普通方式
var reg=/表达式/附加参数
附加参数是可选的,用来扩展正则表达式的含义,主要有三个参数:
1 g:全局匹配。
2 i:用作忽略大小写的参数。
3 m:多行匹配。
正则表达式语法(perl风格)
Perl语言的正则表达式已经非常成熟,javascript直接拿来使用。
格式
/javascript/ 在字符串前后分别加一个斜杠
匹配函数
正则.exec(str) 匹配返回内容,否则返回null
正则.test(str) 匹配返回true,否则返回false
test(str):
该方法检查一个字符串中是否存在创建RegExp对象实例时所指定的正则表达式模式,如果存在则返回true,否则返回false。
exec(str):
exec方法使用RegExp对象实例创建时指定的正则表达式模式搜索字符串,并返回一个包含搜索结果的数组。exec方法返回的数组有index属性,它表示匹配的字符串在整个被搜索字符串中的位置;exec方法每次从字符串的起始位置搜索第一个与模式匹配的字符串。
正则表达式的元素
![](https://img.haomeiwen.com/i18573776/dd9c9f070e5b21dc.png)
![](https://img.haomeiwen.com/i18573776/ef5190c803960557.png)
+ 至少包含一个前导字符 前导:前面一个字符
? 0个或1个前导字符,以下两个匹配,多个h不行
. 匹配任意字符串,一个点是一个字符,两个点是两个字符,以下两个匹配,有几个点就匹配几个字符
{x} 匹配任何包含x个前导字符串,必须是X个,多一个少一个都不匹配
{x,y} 匹配任何包含x个到y个前导字符串
{x,} 匹配任何至少x个字符
$匹配字符串的行尾,$一般加在字符串的尾巴上,表示从尾巴开始匹配
^匹配字符串的行首,^一般加在字符串的开头,表示从开头开始匹配
元字符
![](https://img.haomeiwen.com/i18573776/4d888f44e68f0c21.png)
![](https://img.haomeiwen.com/i18573776/109a495d3ee0fcf6.png)
[a-z]:匹配任何包含小写字母的字符串,任意一个即可
[abc]:匹配abc任意一个,注意:一个字符,如果[abc][abc]每个[]都是匹配一个字符,所以这个是匹配两个字符,每个都是abc的一个,下面代码不匹配,第一个[abc]匹配a,第二个[abc]需要匹配d
[a-zA-Z0-9_]:匹配任意一个小写大写字母或数字或下划线的字符串
[^abc]:^在中括号里边,不是外边,表示除了abc都能匹配,字符串为a,b,c组成都不匹配,加上别的字母可匹配。
\w 为了表示更方便,\w表示[a-zA-Z0-9_],要不要[]都可以。
\W 正好和\w相反,表示不含[a-zA-Z0-9_]的字符串
\d 和[0-9]相同,匹配任一个数字
\D 和[^0-9]相同,不匹配人一个数字,不包括数字即可匹配
![](https://img.haomeiwen.com/i18573776/d6e6974de0cd9c14.png)
i 完成不区分大小写的匹配,修饰符放在//外边
m 表示在首尾时,如果遇到换行\n也承认是首尾
其他都不常用,这里i和m也不常用。
常用正则判断
判断邮箱合法性
(用户名)@(网址).(域名)
用户名:可以是字母数字下划线和点,点需要\转义一下,可以定义用户名的字符数
用户名称:采用正则表达式
模式:/^[a-zA-Z0-9_]{6,15}$/
正则匹配方法exec()和test()
正则.exec(内容):匹配返回内容,否则返回null
正则.test(内容):匹配返回true否则返回false
采用计数器表示包含几种字符
varcount = 0;
varregNum= /[0-9]/;
varregLower= /[a-z]/;
varregUpper=/[A-Z]/;
正则.test(内容):匹配返回true否则返回false