正则表达式学习总结

概念

正则表达式(Regular Expression),是由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则。

规则

var reg = /pattern/attributes
/ /不能省略;
参数pattern是一个正则表达式字符串;
参数attributes是一个可选的字符串,可以在i,m和g范围内指定
i:不区分大小写
m:多行匹配
g:全局搜索
常用的为i,g和ig.

字符串方法

修饰符:search,replace,test,exec
var src = ‘sadsdaddfdfa’
var reg = /…/
console.log(reg.test(src));test()方法搜索字符串指定的值,根据结果并返回真或假。
console.log(reg.exec(src));exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
console.log(src.search(reg));此函数可以检索与正则表达式相匹配的子字符串.返回值是第一个与正则表达式相匹配的子字符串的起始位置,位置是从0开始计算的。如果没有找到返回-1。
console.log(reg.replace(替换的内容));首先我们和exec捕获一样,把所有和我们正则匹配的都捕获到,然后把捕获的内容替换成我们需要替换的新内容.

字符使用

重复

正则表达式中可以使用如下特殊字符定义字符的出现频次——量词元字符
n+ :匹配任何包含至少一个 n 的字符串。
n* :匹配任何包含零个或多个 n 的字符串。
n? :匹配任何包含零个或一个 n 的字符串。
n{X} :匹配包含 X 个 n 的序列的字符串。
n{X,} :X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。
n{X,Y} :X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

方括号

方括号用于查找某个范围内的字符:
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。

元字符

元字符(Metacharacter)是拥有特殊含义的字符:
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NULL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

常用正则表达式

Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)$
网站域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
URL网址:^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]
)?$
手机号码:^(13[0-9]|17[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
电话号码 (“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^((\d{3,4}-)|\d{3.4}-)?\d{7,8}$
国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
身份证号(15位、18位数字):^\d{15}|\d{18}$
日期格式:^\d{4}-\d{1,2}-\d{1,2}
一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
腾讯QQ号:[1-9][0-9]{4,8} (腾讯QQ号从10000开始,目前最长为10位)
中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值