RegExp類型exec()方法的返回值說明

来源:http://www.cnblogs.com/chunyangji/archive/2016/10/12/5953418.html
-Advertisement-
Play Games

之前看別人寫的插件經常會用到RegExp對象來驗證輸入,並且獲取一些那時我並不曉得是什麼東西的數組,來取值進行自定義的邏輯處理。今天學習了一下RegExp類型。終於有了一個初步的瞭解,至少不會看一會就感覺蒙圈了,記錄分享一下 ECMAScript通過RegExp類型來支持正則表達式 語法如下 其中 ...


之前看別人寫的插件經常會用到RegExp對象來驗證輸入,並且獲取一些那時我並不曉得是什麼東西的數組,來取值進行自定義的邏輯處理。今天學習了一下RegExp類型。終於有了一個初步的瞭解,至少不會看一會就感覺蒙圈了,記錄分享一下

ECMAScript通過RegExp類型來支持正則表達式

語法如下 

var expression =  /pattern / flags;

其中 pattern 部分是正則表達式。 flags 部分用來標明正則表達式的行為,正則表達式的匹配模式支持一下3種:

 g:表示全局模式,即模式將被應用於所有字元串,而非在發現第一個匹配項時立即停止。

 i:表示不區分大小寫。

m:表示多行模式,級在到達一行文本末尾時還會繼續查找下一行中是否存在魚模式匹配的項。

舉個慄子:

var pattern1= /at/g;  //匹配字元串中所有"at"的實例

var pattern2 = /[bc]at/i; //匹配第一個"bat"或"cat",不區分大小寫

瞭解了正則的語法,下麵說一下RegExp實例,上代碼說明吧

var pattern = new RegExp("\\[bc\\]at","i");  //創建正則實例

alert(pattern.global);  //false 是否設置全局標識
alert(pattern.ignoreCase); //true 是否不區分大小寫
alert(pattern.multiline);  //false 是否設置多行標識
alert(pattern.lastIndex);  //0 表示開始搜索下一個匹配項的字元位置,從0算起
alert(pattern.source);  //"\[bc\]at" 返回按照字面量形式而非傳入構造函數中的字元串模式

以上,基本上我們就關係輸入的正則表達式和標誌符就可以了。下麵就是我之前總蒙圈的東西了。終於弄明白都代表了什麼,依舊代碼說明

var text ="this has been a short summer";
var pattern =/(..)or(.)/g;

var matches=pattern.exec(text);
console.log(matches.index); // 16
console.log(matches.input); // this has been a short summer
console.log(matches[0]);  // short
console.log(matches[1]);   // sh
console.log(matches[2]);    // t

下麵解釋一下

exec()接受一個參數,即要應用模式的字元串,然後返回包含第一個匹配項信息的數組;或者在沒有匹配項的情況下返回null.

返回的數組是Array實例,但包含兩個額外的屬性: index 和 input。

其中,

index 表示匹配項在字元串中的位置。(上面代碼匹配項為 short ,對應的位置 是16);

input 表示應用正則表達式的字元串。(上面代碼的 text變數的值 this has been a short summer);

在數組中,

第一項:表示與整個模式匹配的字元串 (上面代碼中的 short 匹配 正則校驗);

其它項: 與模式中的捕獲組匹配的字元串(如果模式中沒有捕獲組,則該數組只包含一項)

   上述代碼匹配模式中包含兩個捕獲組。第一個為(..),對應捕獲的字元為 sh;第二個為(.),對應的捕獲字元為 t。

okay. 知道了數組的各項的意義,再看一些插件或庫時,就不會一直蒙圈了。當然,我們也可以根據返回的匹配數據來自定義邏輯操作了。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • jquery實現圖片切換: javascript實現圖片切換: ...
  • window.onload用法詳解:網頁中的javaScript腳本代碼往往需要在文檔載入完成後才能夠去執行,否則可能導致無法獲取對象的情況,為了避免這種情況的發生,可以使用以下兩種方式:一.將腳本代碼放在網頁的底端,這樣在運行腳本代碼的時候,可以確保要操作的對象已經載入完成。二.通過window. ...
  • (-1)寫在前面 我用的是chrome49,這個idea是我在stackoverflow上回答問題時看到了,多謝這位同行,加深了我對很多技術點的理解,最近剛到北京,忙碌了一兩天,在後續的日子里,會被安排面試,學習計劃只能按工作流走了,做完這個要看一個特別酷的效果,好激動! (0)效果演示 (1)實現 ...
  • https://yunpan.cn/cvxaNNCE4xK7T (提取碼:639e) ...
  • 首先正則表達式是什麼? 正則表達式是一個自定義規則的表達式,用來匹配符合定義的規則的字元串。什麼意思?比如這是一個正則表達式:/\d/,\d的意思就是任意一個數字,所以這個正則表達式的意思就是匹配一個任意數字。大概明白了吧! ...
  • 實現效果一樣,禁止複製。 區別: oncopy="document.selection.empty()" 沒禁止,只是把它複製的內容,變成空了; oncopy="return false"是禁止複製。 ...
  • 需要準備:jQuery Bootstrap 天氣預報API(本文中使用API可能會失效請靈活運用) CSS樣式可以你自己去寫這裡只提出jQuery 請求數據和解析JSON數據 上面是要用到的JSON數據格式 搭建界面略過 根據JSON中數據添加到HTML中 解析數據到HTML中 其中一定要註意 跨域 ...
  • 目的 template綁定(模板綁定)使用渲染模板的結果填充關聯的DOM元素。 模板是一種簡單方便的方式來構建複雜的UI結構 。 下麵介紹兩種使用模板綁定的方法: 本地模板是支持foreach,if,with和其他控制流綁定的機制。 在內部,這些控制流綁定捕獲元素中包含的HTML標記,並將其用作模板... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...