创建正则表达式
/正则表达式主体/修饰符(可选)
new RegExp(正则表达式主体[, 修饰符])
var reg = /java/;
reg.test('java'); // true
var reg = new RegExp('java');
reg.test('java'); // true
修饰符
i
:执行对大小写不敏感的匹配。
g
:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m
:执行多行匹配。
s
:允许 . 去匹配多行
u
:Unicode; 将模式视为Unicode序列点的序列Unicode;
y
粘性匹配; 仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引(并且不尝试从任何后续的索引匹配)。
方括号
[abc]
查找方括号之间的任何字符。
[^abc]
查找任何不在方括号之间的字符。
[0-9]
查找任何从 0 至 9 的数字。
[a-z]
查找任何从小写 a 到小写 z 的字符。
[A-Z]
查找任何从大写 A 到大写 Z 的字符。
[A-z]
查找任何从大写 A 到小写 z 的字符。
[adgk]
查找给定集合内的任何字符。
[^adgk]
查找给定集合外的任何字符。
(red|blue|green)
查找任何指定的选项。
字符类别
. // 除换行符与其他Unicode行终止符以外的任意字符
\w // 等价于[a-zA-Z0-9_],大小写字母、数字、下划线63字符中任意一个
\W // 等价于[^a-zA-Z0-9_]
\s // 任何Unicode空白符
\S // 任何Unicode非空白符
\d // 等价于[0-9]
\D // 等价于[^0-9]
[\b] // \b放入[]中标识退格直接量
边界
\b
匹配单词的开始或结束 例如:/\bno/ 匹配 "at noon" 中的 "no"
^
匹配字符串的开始
$
匹配字符串的结束
重复
{n, m} // 最少重复n次,最多重复m次
{n, } // 至少重复n次
{n} //重复n次
? // 等价于 {0, 1}
+ // 等价于 {1,}
* // 等价于 {0,}
实例方法
str.search(reg)
str.replace(reg,'替换的值')
str.split(reg)
str.match(reg)
返回一个数组(匹配到的值),如果没有匹配到返回null
reg.exec(str)
用于检索字符串中的正则表达式的匹配
reg.test(str)
let str='test test ssss test';
let reg=/test/g;
str.match(reg) // ["test", "test", "test"]
var str = "Visit Runoob!";
str.search("Runoob"); //6 返回索引
var str = 'microsoft test microsoft test';
var txt = str.replace(/microsoft/i,"Runoob");
var patt = /e/; //返回布尔值
patt.test(" free!"); //true