前端学习正则表达式

第一  权威指南

JavaScript中的正则表达式用RegExp对象表示,可以使用RegExp()构造函数来创建RegExp对象,不过RegExp对象更多的是通过一种特殊的直接量语法来创建。

var pattern = /s$/;

var pattern = new RegExp("s$");

正则表达式中的直接量字符

字符

字母和数字字符   匹配自身

\o 匹配NUL

\t 制表符

\n 换行符

\v 垂直制表符

\f 换页符

\r 回车符

\xnn 由16进制数nn指定的拉丁字符

\uxxx 由16进制数xxx指定的Unicode字符

\cx 控制字符^x

\s 空格符

 

在正则表达式中,有一些字符具有特殊含义,但是在使用过程中必须使用前缀\.

特殊含义符号表

[……] 方括号内的任意字符

[^……] 不在方括号内的任意字符

* 除换行符和其他Unicode行终止符之外的任意字符。

\w 等价于 [a-zA-Z0-9] 任何ASCII字符组成的单词

\W 等价于[^a-zA-Z0-9] 任何不是ASCII字符组成的单词

\s 任何Unicode空白符

\S 任何非Unicode空白符的字符

\d 等价于 [0-9] 任何ASCII数字

\D 等价于 [^0-9] 除了ASCII数字之外的任意字符

[\b] 退格直接量 匹配边界

(?=)  先行判断

带有(?!的断言是负向先行断言,用以指定接下来的字符都不用匹配

 

正则表达式的重复字符语法

{n,m} 匹配前一项n次,但是不能超过m次

{n,}     匹配前一项n次或者更多次

{n}       匹配前一项n次

? 等价于{0,1}  匹配前一项0次或者1次,也就是说前一项是可选的

+ 等价于 {1,}  匹配前一项1次或者多次

* 等价于 {0,} 匹配前一项0次或者多次

/\d{11}/ 匹配11位数字

/\1{1}|\d{10}/ 这样是不对的 匹配顺序是从左到右,匹配遇到第一个就不匹配剩下的了

/java(script)?/

可以匹配字符串java,其后可以有script也可以没有

圆括号的作用

  1. 完整的模式中定义子模式;
  2. 允许正则表达式的后部引用前面的子表达式;这是通过在字符『\』后多一位或者多位数字来实现的。
/[a-z]+\d/

(/[a-z]+(\d+)/)

以上两者的分别:

/([Jj]ava([Ss]cript)?)\sis\s(fun\w*)/

正则表达式的选择、分组和引用字符

| 选择

(...) 组合

(?:...)只组合

修饰符 必须在第二条斜线之外

i 用以说明模式匹配是不区分大小写的

g 说明模式匹配应该是全局的

m用以多行模式中的执行匹配。如果待检索的字符串包含多行,那么^$锚字符除了匹配整个字符串的开始和结尾之外,还能匹配每行的开始和结尾。

10.2 用于模式匹配的String方法

  1. search() 参数是一个正则表达式   ,返回第一个与之匹配的子串的起始位置。如果找不到匹配的子串,返回-1.他忽略正则表达式参数中的修饰符g。
  2. replace() 用以执行检索和替换操作。 第一个参数是正则表达式,第二个参数是要进行替换的字符串。
  3.  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值