JavaScript入门文档React随笔初学前端

正则

2019-11-04  本文已影响0人  简约酒馆

正则表达式的用处

测试用户名(必须由字母数字下划线组成)

用户密码(必须同时包含大写小写数字)

确认密码

邮箱

电话号码

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方法每次从字符串的起始位置搜索第一个与模式匹配的字符串。

正则表达式的元素


+  至少包含一个前导字符  前导:前面一个字符


?  0个或1个前导字符,以下两个匹配,多个h不行


.  匹配任意字符串,一个点是一个字符,两个点是两个字符,以下两个匹配,有几个点就匹配几个字符


{x} 匹配任何包含x个前导字符串,必须是X个,多一个少一个都不匹配

{x,y} 匹配任何包含x个到y个前导字符串


{x,} 匹配任何至少x个字符


$匹配字符串的行尾,$一般加在字符串的尾巴上,表示从尾巴开始匹配

^匹配字符串的行首,^一般加在字符串的开头,表示从开头开始匹配


元字符

[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]相同,不匹配人一个数字,不包括数字即可匹配

i 完成不区分大小写的匹配,修饰符放在//外边

m 表示在首尾时,如果遇到换行\n也承认是首尾

其他都不常用,这里i和m也不常用。

常用正则判断

判断邮箱合法性

如:abc@163.com

(用户名)@(网址).(域名)

用户名:可以是字母数字下划线和点,点需要\转义一下,可以定义用户名的字符数

用户名称:采用正则表达式

  模式:/^[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

上一篇 下一篇

猜你喜欢

热点阅读