並不算複雜的正則表達式基礎

来源:http://www.cnblogs.com/duenyang/archive/2016/11/17/6074859.html
-Advertisement-
Play Games

定義:正則用於規定在文本中檢索的內容,它是對字元串執行模式匹配的強大工具 RegExp(正則表達式) 對象的語法: new RegExp(pattern, attributes); pattern為一個字元串或匹配規則 attributes為可選字元串,包含屬性g、i 和 m g:代表全局匹配 (繼 ...


定義:正則用於規定在文本中檢索的內容,它是對字元串執行模式匹配的強大工具

RegExp(正則表達式) 對象的語法: new RegExp(pattern, attributes);

  pattern為一個字元串或匹配規則 attributes為可選字元串,包含屬性g、i 和 m

  g:代表全局匹配 (繼續往下匹配)

  i:代表不區分大小寫匹配

  m:代表多行匹配,只對^和$模式有用

定義正則表達式有兩種形式:

  構造函數方式: new RegExp(pattern, attributes);

    例:var reg=new RegExp(“abc","g"); 構造函數中的正則可以是常量字元串或一個js變數

  普通方式:/pattern/attributes(/正則/屬性)

    例:var reg=/abc/g; 普通方式中的正則必須是一個常量字元串

每個正則表達式都有一個 lastIndex 屬性,用於記錄上一次匹配結束的位置(索引值)。

獲取 reg.lastIndex

設置 reg.lastIndex=0;

示例: var str=‘abcdeabfg’;

    var reg=new RegExp(‘ab’,‘g’);

         alert(reg.test(str));//true

         alert(reg.lastIndex);//2

元字元

\d : 匹配任意一個數字,0~9 中的任意一個

\s : 匹配任意一個空白字元

\b : 匹配一個單詞邊界,不匹配任何字元

\w : 匹配任意一個字元( 字母、 數字、下劃線 )

. : 匹配任意一個字元,除了換行符( \n )

\n : 查找換行符

\u : 通常用來匹配漢字

表達式 "\d","\s","\b","\w",對應的大寫字母表示相反的意義

如:\D 匹配所有的非數字字元;

方括弧的使用:

[abc] : 查找方括弧之間的任何字元。

[^abc] : 查找任何不在方括弧之間的字元。

[0-9] : 查找任何從 0 至 9 的數字。

[a-z] : 查找任何從小寫 a 到小寫 z 的字元。

 

[A-Z] : 查找任何從大寫 A 到大寫 Z的字元。

量詞的使用:

n+ : 匹配任何包含至少一個 n 的字元串。

n? : 匹配任何包含零個或一個 n 的字元串。

n* : 匹配任何包含零個或多個 n 的字元串。

n{X} : 匹配包含 X 個 n 的序列的字元串。

n{X,Y} : 匹配包含 X 到Y 個 n 的序列的字元串。

^n : 匹配任何開頭為 n 的字元串。

n$ : 匹配任何結尾為 n 的字元串。

其他相關

| : 匹配左邊或者右邊

\ : 轉義符 特殊標點符號,在前面加 \ 後,就代表該符號本身

^ 要匹配 "^" 字元本身,請使用 \^ ( ) 要匹配小括弧本身,請使用 \( 和 \)

RegExp 對象的方法

   test:檢索字元串中指定的值 返回 true 或 false reg.test(str);

  exec: 檢索字元串返回查找結果的第一個值 reg.exec(str);

  

  compile: 該方法可以重編輯指定的正則表達式

    var reg=new RegExp("13[4-9](\\d){8}","g"); //重新編輯正則表達式 reg.compile("13[0-3](\\d){8}","g");

String 對象方法

  search:檢索與正則表達式相匹配的值

    用法:str.search(reg); (返回索引值,無-1)

  match:返回所有正則表達式的匹配(加g)

     用法:str.match(reg); (返回數組)

  replace:替換與正則表達式匹配的子串

    用法:str.replace(reg,"");

  split:將字元串匹配的部分做分割(去除)

    用法:str.split(reg); (返回數組)

 


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

-Advertisement-
Play Games
更多相關文章
  • HTML5表單在原有表單特性的基礎上增加了一些比較便捷的特性,使得我們實現一些常用的表單的小部件、輸入類型、輸入驗證不再那麼大費周章。上一篇文章提到了HTML5實現的幾種新的輸入類型,現在我們更加詳盡的瞭解HTML5的表單產生的新特性和功能。 1. 輸入類型和輸入屬性 菜鳥教程上給出了HTML5新增 ...
  • 採用CSS的flex佈局可以很容易的實現特殊佈局,比如垂直居中,div底部對齊等。我遇到了一個交叉佈局的需求,然後用flex佈局很愉快的把它給解決了。 ...
  • 這一節針對attr()與prop()之間的區別進行學習。先看看官方文檔是如何解釋兩者之間功能差異的: attr() Get the value of an attribute for the first element in the set of matched elements or set on ...
  • 這一節詳細的總結jQuery選擇器。 一、基礎選擇器 二、基本過濾器 基本選擇器獲取的元素集合,通過過濾器的篩選,使選擇更加精確。 三、內容過濾器 jQery準備了內容過濾器用於對選擇的元素集合內容進行過濾。 統一名稱: 空元素:不包含任何後代元素或文本內容的元素,如<div></div> 非空元素 ...
  • 捂臉,辛酸淚ing...... 本文主要涉及部分在移動設備上特有的問題。 相對來說,Jquery側重DOM操作,AngularJS是以視圖模型和雙向綁定為核心的。 ...
  • position position--設置定位方式,設置參照物 top,right,bottom,left,z-index--設置位置,必須配合position使用,如果一個元素不是一個定位元素,設置了這些屬性是不起效果的。 上面這兩項結合就能定 一個元素在瀏覽器中的位置 1. top/right/... ...
  • 在建設網站中用到地圖是很常見的,在國內大部分都是用百度地圖,但是有時候可能會用到國外地址,這時候就只能使用谷歌地圖了。 方法一、使用框架引入谷歌地圖 用框架引入谷歌地址是最簡單的方法,不是專業開發人員也可以操作。登陸ditu.google.cn地圖,輸入地址信息,如:"上海東方明珠",把地圖移動到合... ...
  • <html> <head> <title> new document </title> <meta name="generator" content="editplus" /> <meta name="author" content="" /> <meta name="keywords" conte ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...