創(chuàng)建正則表達式
/正則表達式主體/修飾符(可選)new RegExp(正則表達式主體[, 修飾符])
var reg = /java/;
reg.test('java'); // true
var reg = new RegExp('java');
reg.test('java'); // true
修飾符
i:執(zhí)行對大小寫不敏感的匹配。
g:執(zhí)行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。
m:執(zhí)行多行匹配。
s:允許 . 去匹配多行
u:Unicode; 將模式視為Unicode序列點的序列Unicode;
y粘性匹配; 僅匹配目標字符串中此正則表達式的lastIndex屬性指示的索引(并且不嘗試從任何后續(xù)的索引匹配)。
方括號
[abc] 查找方括號之間的任何字符。
[^abc] 查找任何不在方括號之間的字符。
[0-9] 查找任何從 0 至 9 的數(shù)字。
[a-z] 查找任何從小寫 a 到小寫 z 的字符。
[A-Z] 查找任何從大寫 A 到大寫 Z 的字符。
[A-z] 查找任何從大寫 A 到小寫 z 的字符。
[adgk] 查找給定集合內(nèi)的任何字符。
[^adgk] 查找給定集合外的任何字符。
(red|blue|green) 查找任何指定的選項。
字符類別
. // 除換行符與其他Unicode行終止符以外的任意字符
\w // 等價于[a-zA-Z0-9_],大小寫字母、數(shù)字、下劃線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) 返回一個數(shù)組(匹配到的值),如果沒有匹配到返回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