RegExp

作者: 3hours | 来源:发表于2017-03-29 19:37 被阅读0次

正则表达式 regular express

搜索、替换、校验字符串的一种规则

1.正则表达式创建方式

a. 字面量 var reg = /abc/;

b. 构造函数  var reg = new RegExp("abc")

当正则表达式不确定,为变量的时候,只能使用构造函数的方式

2. 字母数字,代表本身字符

3. 元字符

\d  数字

\w  字符 下划线、字母、数字

.  匹配任何字符,除了换行 /./.test("\r\n") === false

\s  匹配空格

^  开头,匹配的是位置

$  结尾,匹配的是位置

\b  单词边界,匹配的是位置

4. 限定符,数量

{n}    出现n次

{n, m} 出现次数n~m之间

{n, }  最少出现n次

*      出现0次或多次 {0,}

?   出现0次或一次 {0,1}

+      最少出现一次  {1,}

5. 字符组[] 匹配的是一个

[0123456789]  跟\d 一样  [0-9]

[0-9a-zA-Z_]  跟\w 一样

[^0-9]  不出现0-9

6. 转义字符

\

7. 分支 或

|

8. 负向断言

(?!exp) 后面不能出现exp

9. 捕获分组

()  $1

10. 贪婪模式 懒惰模式

"abcbbbb".match(/.+/g)  ===> ["abcbbbb"]  贪婪模式,尽可能匹配最多

"abcbbbb".match(/.+?/g)  ===>["a","b","c","b","b","b","b"] 懒惰模式,匹配最少

*

+

*?

+?

8. 将类数组对象转换成真正数组

类数组对象形式:{

"0": ele,

"1": ele,

"2": ele,

length: 3

}

Array.prototype.slice.call(类数组对象)

[].slice.call(类数组对象)

常用正则:

1. 验证手机号

/^1\d{10}$/

2. 固话

/^\d{3,4}-\d{7,8}$/

3. 长度4~20位字符

/^\w{4,20}$/

4. 匹配中文

/[\u4e00-\u9fa5]/

只匹配2~6个中文

/^[\u4e00-\u9fa5]{2,6}$/

5. 匹配网址

www.xxxx.com

/^www\.\w{2,10}\.com$/

http://www.xxxx.com

/^http:\/\/www\.\w{2,10}\.com$/

6. 匹配邮箱

xxxx@163.com

xxxx@qq.com

xxxx@sina.com

xxxx@sina.cn

/^\w{2,10}@\w{2,}\.(com|cn)$/

7. 去掉字符串首尾空格的正则表达式

/^\s+|\s+$/g

相关文章

网友评论

      本文标题:RegExp

      本文链接:https://www.haomeiwen.com/subject/bosyottx.html