笔记:JS权威指南11章—Javascript正则表达式

正则表达式( Regular expression )是一种描述字符模式的对象, JavascriptRegExp 类表示正则表达式,而 StringRegExp 都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数

 

正则表达式的重复字符:可以匹配尽可能多的字符

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

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

{n} 匹配前一项 n

? 匹配前一项 0 次或 1 次,等价于 {0, 1}

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

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

 

非贪婪的重复:在重复字符后加问号(如: ??,  +?,  *?, {1,4}?

 

选择:选择项是从左到右考虑,直到发现了匹配项,如果左边的选择项匹配,就忽略右边的选择项,即使它产生更好的选择项。

模式 /a|ab/ 应用到字符串 ”ab” 上时,它只匹配第一个字符。

 

在正则表达式中括号具有几种作用:

一个作用是把单独的项目组合成子表达式,以便可以想处理独立的但愿那样用 |, *, +? 等来处理他们;

另一个作用是在完整的模式中定义子模式;

/([‘”])[^‘”]*\1/  匹配一对单引号或者一对双引号, \1 匹配的是第一个带括号的子表达式所匹配的模式

 

正则表达式的标志:

I : 执行不区分大小的匹配

g : 执行一个全局匹配

m : 多行匹配, ^ 匹配一行的开头和字符串的开头, $ 匹配一行的结尾和字符串的结尾

 

search :以正则表达式为参数(如果不是正则表达式,则传递给 RegExp 转换成正则表达式),返回第一个与之匹配的子串的开始字符的位置,如果没有匹配的字符,返回 -1Search 不支持全局搜索

"JavaScript".search(/script/i);//4

 

 

match :参数是正则表达式(如不是,则转换),返回包含匹配结果的数组

"2 plus 5 equals 7".match(/\d+/g);// ["2", "5", "7"]
 

 

split :把调用它的字符串(或正则表达式)分解为一个子串数组,返回数组

"123,456,789".split(",");//["123", "456", "789"]
"1,2, 3, 4 ,5".split(/\s*,\s*/);//["1", "2", "3", "4", "5"]

 

 

RegExp 类:第一个参数为包含正则表达式主体的字符串,第二个参数是可选的,为 g/i/m 。当将正则表达式作为字符串直接量传递给 RegExp 构造函数时,必须用 \\ 替换所有的 \ 字符。

var zipcode = new RegExp(“\\d{5}”,’g’);

 

 

exec :对一个指定的字符串执行一个正则表达式即在一个字符串中检索匹配,如果没找到,返回 null ,如果找到,返回一个数组。

var pattern = /Java/g;
var text = "Javascript is more fun than Java!";
var result;
while((result = pattern.exec(text) )!= null){
    alert("Matched '" + result[0] + "'" + "at position " + result.index  + "; next search begins at " + pattern.lastIndex);
}
 

 

 

test :另一个 RegExp 方法,参数是一个字符串,如果这个字符串包含正则表达式的一个匹配,返回 true

var pattern = /java/i;
pattern.test("JavaScript");//true
 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值