正則基礎

創(chuàng)建正則表達式

  1. /正則表達式主體/修飾符(可選)
  2. 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
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容