JavaScriptRegex用法匯總

來源:互聯網
上載者:User
JavaScriptRegex的用法
  • Regex是一種可以用於模式比對和替換的強大工具,在很多語言中都可以應用。JavaScript對Regex提供了很好的支援, Javascript中有一個Regex對象RegExp。該對象提供了大量的屬性和方法來處理Regex,同時,String對象也提供了相關的方法來處理Regex,在Web應用中,經常使用Regex來驗證使用者輸入的資訊,例如在使用者註冊過程中,驗證輸入的Email地址是否合法。以下我們就介紹一下Regex的基本用法。
JavaScriptRegex的基本用法
  • Regex的作用主要有三:
    • 驗證數字是否符合特定模式;
    • 利用Regex找到特定文本而後刪除或者替換文本;
    • 按模式比對在字串中尋找尋找匹配子字串。
  • Javascript中使用Regex的方法有二:
  • 一是使用RegExp對象
    • 其基本文法為:var rx=new RegExp(pattern[,flags]);,其中參數pattern是一個字串,表示要使用的Regex模式,參數flag為一個可選的字串,表示如何應用模式的標誌,多種標誌可以組合使用。
    • 主要有三種模:g;全文尋找出現的所有模式;i:忽略大小寫;m:多行尋找;
  • 二是使用Regex直接量 var rx=/pattern/flags;
    • pattern表示使用的Regex模式,flag如何應用的標記同上;
  • 模式字串組成
    • Regex就是有一般字元以及特殊字元(稱為元字元)組成的文字模式。元字元前面的字元稱為前置字元,元字元按功能又分為限定符、定位器等類別,下面對常用的元字元進行列表說明。
常見元字元
元字元 說明
\s 匹配單個空格,包括tab鍵和分行符號
\S 匹配出單個空格符之外的所有字元,\S與\s互為逆運算
\d 匹配從0~9的數字
\w 匹配字母,數字或者底線
\W 匹配所有與\w不匹配的字元,\W與\s互為逆運算
\cx 匹配由x指明的控制字元。例如,\cZ匹配一個Control-Z。x的值必須為A~Z或者a~z之一。否則,將c視為一個願意的'c'字元
\f 匹配一個換頁符,等價與\x0c和\cL
\n 匹配一個分行符號,等價於\x0a和\cJ
\r 匹配一個斷行符號符,等價於\x0d和\cM
\t 匹配一個定位字元,等價於\x09和\cI
\v 匹配一個垂直定位字元。等價於\x0b和\cK
. 用於匹配除分行符號之外的所有字元

限定符說明
限定符 說明
* 匹配前置字元出現零次或者多次
+ 匹配前置字元出現一次或者多次
? 匹配前置字元出現零次或者一次
{n} 匹配前置字元出現n次,n>=0;
{n,} 匹配前置字元至少出現n次,n>=0;
{n,m} 匹配前置字元至少出現n次,最多出現m次;m>n>=0;

定位器說明
定位器 說明
^ 匹配模式必須出現在目標字串開頭
$ 匹配模式必須出現在目標的結尾
\b 匹配模式必須出現在目標字串的開頭或者結尾的兩個邊界之一
\B 匹配對象必須位於目標字串的開頭和結尾的兩個邊界之內,即匹配對象既不能作為目標字串的開頭,也不能作為目標字串的結尾

  • Regex匹配模式的範圍指定符
    • []限定的模式指定了其中一個字元的出現的可能。如/[A-Z]/表示匹配從A到Z的任何一個字元;/[A-Za-z]/表示匹配從A到Z或者從a-z的任何一個字元;
    • ()限定的模式指定()裡包含的內容必須同時出現在對象中。如/(abc)[0-9]/意思是目標字串中出現的abc1,abc2...abc9中9個中的任何一個,而不是ab1,a2等;
    • “|”類似於邏輯運算中的“或”運算,如:/sb|sbb|6/表示與目標對象中的"sb","sbb","6"中任何一個相匹配;
    • 當^符出現在[]中時,表示取否定運算。如:/[^A-G]/表示與目標對象中除了A-G之外的字元相匹配;
  • 字元轉義與優先順序順序
  • 在匹配模式需要使用元字元時,需要使用轉移字元“\+元字元”表示,如尋找“12*”模式,我們可以使用/12\*/表示;構造玩Regex以後,就可以像使用數學運算式一樣來求值。Regex在匹配過程中是按照從左向右的順序進行的,其操作符具有一定的優先順序順序

優先順序順序
優先順序 操作符 說明
1 \ 轉義符
2 (),(?:),(?=),[] 圓括弧和方括弧
3 *,+,?,{n},{n,},{n,m} 限定符
4 ^,$,\anyMatchcharacter 位置順序
5 | 或操作

正則對象運算式對象

  • RegExp對象的屬性與方法

RegExp對象的靜態屬性
屬性 說明
index 唯讀屬性,返回字串中第一次與模式相匹配的子字串的開始位置,初始值為-1;
input 唯讀屬性,返回當前被Regex模式作用的字串,可以簡寫為“$_”,初始值為空白字串;
lastIndex 唯讀屬性,返回被尋找字串中下一次成功匹配的子字串的開始位置,其初始位置為-1,其值會隨著匹配的不同而被修改;
lastMatch 唯讀屬性,返回Regex在搜尋過程中最後匹配的字元,可以簡寫為:“$&”;
lastParen 唯讀屬性,返回Regex在尋找過程中最後用園括弧括起來的子匹配;
leftContext 唯讀屬性,返回被搜尋字串中從開始位置到最後匹配之前為之間的字元,可以簡寫為"$^";
rightContext 唯讀屬性,返回被搜尋字串中從最後一個匹配位置開始到字串結尾之間的字元,可以簡寫為"$'";
$1-$9 代表$1,$2...$9等9個唯讀屬性,返回9個在模式比對期間找到的,最近儲存的部分;
RegExp對象的執行個體屬性
global 唯讀屬性,布爾值,表示建立RegExp時是否設定了g標誌,如果設定了則返回true,否則返回false;
ignoreCase 唯讀屬性,布爾值,表示建立RegExp時是否設定了i標誌,如果設定了則返回true,否則返回false;
multiline 唯讀屬性,布爾值,表示建立RegExp時是否設定了m標誌,如果設定了則返回true,否則返回false;
source 唯讀屬性,字串型,返回Regex模式字串;
RegExp對象的方法
exec() RegExp對象的exec()方法是與Regex匹配的強大方法,文法格式為:array=reObj.exec(str);
test() RegExp對像的Test()方法用於在給定的字串中測試Regex是否匹配,其基本文法為:var passed=reObj.text(str);如果匹配則返回true,否則返回false
compile() RegExp對象的compile()方法用於將Regex編譯為內部格式,從而執行得更快,其基本文法為:reObj.compile(pattern[,flag]);

String對象的4個Regex用法

String對象的4個Regex方法
search() 用於尋找特定子字串,其基本文法為var str=strObj.search(re);方法返回第一個與Regex匹配的子字串;
replace() 用於檢索與替換操作,其基本文法格式為:strObj.replace(re,str);如果re不是Regex,則表示一般字元串替換;
match() 使用Regex模式對字串進行尋找,使用方法為var array=strObj.match(re);返回三個屬性:1)input包含整個被尋找字串,2)index包含了整個被尋找字串中的匹配的子字串的位置,lastindex屬性包含了最後一次匹配字串的位置;
split() 可以使用Regex做參數作為分割字元標誌分割字串;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.