正则表达式(上)
主要内容
- 正则表达式概述
- 正则表达式的运行
- 创建正则表达式
- 特殊字符: 、^、$
概述
正则表达式,又称规则表达式。(英语: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. 特殊元字符:
将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“
”匹配
。“
”匹配换行符。序列“”匹配“”而“(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。
5. 特殊元字符:^
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“
”或“
”之后的位置。
还有一种用法如:反向范围字符。匹配不在指定的范围内的任何字符。例如,“[^a-z]”匹配任何不在“a”到“z”范围内的任何字符。
6. 特殊元字符:$
匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“
”或“
”之前的位置。