js正則表達(dá)式

定義正則表達(dá)式

  • /.../ 用于定義正則表達(dá)式
  • /.../g 表示全局匹配
  • /.../i 表示不區(qū)分大小寫
  • /.../m 表示多行匹配

JS正則匹配時(shí)本身就是支持多行,此處多行匹配只是影響正則表達(dá)式^和$, m模式也會(huì)使用^$來匹配換行的內(nèi)容)


匹配

JavaScript中支持正則表達(dá)式,其主要提供了兩個(gè)功能:

test(string)

檢查字符串中是否和正則匹配

n = 'uui99sdf'
reg = /\d+/
reg.test(n)  ---> true
 
# 只要正則在字符串中存在就匹配,如果想要開頭和結(jié)尾匹配的話,就需要在正則前后加 ^和$

exec(string)

獲取正則表達(dá)式匹配的內(nèi)容,如果未匹配,值為null,否則,獲取匹配成功的數(shù)組。

非全局模式
獲取匹配結(jié)果數(shù)組,注意:第一個(gè)元素是第一個(gè)匹配的結(jié)果,后面元素是正則子匹配(正則內(nèi)容分組匹配)

var pattern = /\bJava\w*\b/;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

var pattern = /\b(Java)\w*\b/;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

全局模式
需要反復(fù)調(diào)用exec方法,來一個(gè)一個(gè)獲取結(jié)果,直到匹配獲取結(jié)果為null表示獲取完畢

var pattern = /\bJava\w*\b/g;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

var pattern = /\b(Java)\w*\b/g;
var text = "JavaScript is more fun than Java or JavaBeans!";
result = pattern.exec(text)

字符串中相關(guān)方法

obj.search(regexp)
獲取索引位置,搜索整個(gè)字符串,返回匹配成功的第一個(gè)位置(g模式無效)

obj.match(regexp)
獲取匹配內(nèi)容,搜索整個(gè)字符串,獲取找到第一個(gè)匹配內(nèi)容,如果正則是g模式找到全部

obj.replace(regexp, replacement)
替換匹配替換,正則中有g(shù)則替換所有,否則只替換第一個(gè)匹配項(xiàng),
$數(shù)字:匹配的第n個(gè)組內(nèi)容;
$&:當(dāng)前匹配的內(nèi)容;
$`:位于匹配子串左側(cè)的文本;
$':位于匹配子串右側(cè)的文本
$$:直接量$符號

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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