13-正则表达式(上)

正则表达式(上)


主要内容

- 正则表达式概述
- 正则表达式的运行
- 创建正则表达式
- 特殊字符: \、^、$

概述

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

1. 创建正则表达式

直接量语法:
/pattern/attributes
创建 RegExp 对象的语法:
new RegExp(pattern, attributes);
参数pattern是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数attributes是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、不区分大小写的匹配和多行匹配。如果pattern是正则表达式,而不是字符串,则必须省略该参数。

2. RegExp 对象属性

属性 描述
global RegExp 对象是否具有标志g
ignoreCase RegExp 对象是否具有标志i
lastIndex 一个整数,标示开始下一次匹配的字符位置
multiline RegExp 对象是否具有标志m
source 正则表达式的源文本

3. RegExp 对象方法

方法 描述
compile 编译正则表达式
exec 检索字符串中指定的值。返回找到的值,并确定其位置。
test 检索字符串中指定的值。返回 true 或 false。

3.1 compile

compile() 方法用于在脚本执行过程中编译正则表达式。也可用于改变和重新编译正则表达式。
RegExpObject.compile(pattern[,flag])
pattern 正则表达式flag ###### 规定匹配的类型。“g”or“i”or“m”


var str = 'My name is Jeepeng.';
var patt = /My/g;
var str2 = str.replace(patt,"His");
console.log(str2);
patt.compile(/Jeepeng/gim);
str2 = str.replace(patt,"Lily");
console.log(str2);

3.2 exec

exec() 方法用于检索字符串中的正则表达式的匹配。
RegExpObject.exec(string)
string:要检索的字符串。
返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
var p = /\d/g;
var str = '1213abcf3ss9';
while((result = p.exec(str))!= null)
{     
    console.log(result);
    console.log(p.lastIndex);
}

3.3 test

test() 方法用于检测一个字符串是否匹配某个模式。
RegExpObject.test(string)
如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。等价于:(RegExpObject.exec(string) != null)。
var str = '1e2';
var p = /\d{2}/g;
console.log(p.test(str));

4. 特殊元字符:\

将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配\n。“\n”匹配换行符。序列“\”匹配“\”而“(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。

5. 特殊元字符:^

匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
还有一种用法如:反向范围字符。匹配不在指定的范围内的任何字符。例如,“[^a-z]”匹配任何不在“a”到“z”范围内的任何字符。

6. 特殊元字符:$

匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
posted @ 2017-01-04 22:56  shelfy  阅读(167)  评论(0编辑  收藏  举报