正則表達式基礎全掌握(前端JavaScript)中篇

上次介紹了工作當中常用到的正則表達式的基礎篇,這次來介紹一下我工作當中經常使用到的正則中篇

常見的數量修飾符
o? 表示匹配0次或者一次 有或者沒有都行
o* 表示匹配0次或者1次或者多次(任意個)
o+ 表示匹配1次或者多次 至少得有一次
o{m,n} 表示匹配的數量是大於m 小於n,包含m與n
o{m,}表示至少大於m次
o{m}表示匹配的次數只能是m次,限定次數

常見的錨修飾符
^ 表示從頭開始匹配 需要區分非[]修飾符,該修飾符的位置是中括號的外面1從頭開始匹配
$ 表示從尾開始匹配
\b 匹配是否到了邊界在[]中無效
\B匹配不是邊界

中括號[a-zA-Z]表示的是字母a-z A-Z 之間
中括號[0-9]表示的是數字0到9之間
在中括號[]當中加上[^ 0-9]表示非0到9之間的數字
使用元符號匹配
.點字符表示的是除了換行符之外的所有字符,注意點.的個數需要一一對應

\d 匹配的是數字
\D匹配的是非數字
\w匹配的是數字和字母_下劃線
\W 匹配的是非數字和字母及_下劃線
分組
如果匹配的是一組需要定義的字符串可以採用分組,例如:
var pattern=/ab(def){2,6}/ //匹配的是一組def
var pattern=/abdef{2,6}/ //匹配的是單個f
或運算符|
var pattern=/ab|cd|ef/ //匹配的是這三組當中的任意一組
獲取分組的值
var pattern=/8(.*)8/;
var str=‘this is a 8Google8’;
pattern.test(str);
alert(RegExp.$1);可以獲取到Google

貪婪模式和非貪婪模式
這個是工作當中經常使用到的
var pattern=/[a-z]+/;
var str=‘abcdefg’;
var result=str.replace(pattern,1);//該模式下會將所有的字母全部替換成了1

如果採用惰性模式

字符串還是上面的字符串,模式匹配修改成如下
var pattern=/[a-z]+?/;
str.replace(pattern,1);
只有第一個字符會被替換
如果希望匹配的字符逐個替換,
var pattern=/8(.*?)8/g;
var str=‘8Google8 8Google8 8Google8’;
str.replace(pattern,‘hao’)
這樣操作將全部替換三組匹配的字符串


  1. 0-9 ↩︎

發佈了30 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章