正则基础

创建正则表达式

  1. /正则表达式主体/修饰符(可选)
  2. 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

你可能感兴趣的:(正则基础)