JS正則表達式總結

来源:http://www.cnblogs.com/king2016/archive/2016/08/04/5738783.html
-Advertisement-
Play Games

正則需要傳參時,必須使用new RegExp(); var re = new RegExp('\\b'+sClass+'\\b'); 量詞,轉義字元: \s : 空格\S : 非空格 \d : 數字\D : 非數字 \w : 字元(字母,數字,下劃線)\W : 非字元 \. :真正的點 \b:獨立的 ...


正則需要傳參時,必須使用new RegExp();

var re = new RegExp('\\b'+sClass+'\\b');

-------------------------------------------------------------
量詞,轉義字元:

\s : 空格
\S : 非空格

\d : 數字
\D : 非數字

\w : 字元(字母,數字,下劃線)
\W : 非字元

\. :真正的點

\b:獨立的部分 (起始,結束,空格)
\B:非獨立的部分

^ :放在正則前邊,代表起始
$ :代表結束


/^[1-9]\d{4,11}$/ //QQ號檢測


+ :至少出現一次;
| :或
^ :非 [在中括弧裡邊是非的意思]
. :任意字元


{}:
{4,7}:最少4次,最多7次
{4,}:最少4次,最多不限
{4}:正好4次

+:{1,} 即至少出現1次
?:{0,1} 即出現0次或1次
*:{0,} 即至少出現0次

 


-------------------------------------------------------------
標識:不區分大小寫 i 全局匹配 g

正則預設區分大小寫,
如果不區分大小寫,在正則最後加標識 i ;
正則匹配成功就會結束,不會繼續匹配,
如果要全部查找,在正則最後加標識 g ;(全局匹配)

-------------------------------------------------------------
四種常用方法test search match replace

1,正則.test(字元串) [匹配成功:返回true,失敗:返回false]
2,字元串.search(正則) [匹配成功:返回位置,失敗:返回-1]
3,字元串.match(正則) [匹配成功:返回匹配成功的數組,失敗:返回null]
4,字元串.replace(正則,第二個參數)
replace第二個參數可以是[字元串],
也可以是[回調函數],函數的第一個參數就是匹配成功的字元,
字元串.replace(正則,function($0,$1,$2){})

-------------------------------------------------------------

匹配子項 : 小括弧()
[分組操作]

字元串.replace(正則,function($0,$1,$2){})
$0:母親;(整體)
$1:第一個孩子;(第一個小括弧)
$2:第二個孩子;(第二個小括弧)

var str = 'abc';
var re= /(a)(b)(c)/;
str.match(re); 返回[abc,a,b,c]
match只有不加g(全局匹配)才能獲得子項

-------------------------------------------------------------
// 字元類:一組相似的元素
// []中括弧的整體代表一個字元

var str='abc';

var re=/a[bde]c/;

alert(re.test(str)); 返回true

 

var str='abdc';

var re=/a[bde]c/;

alert(re.test(str)); 返回false

 

var str='abc';

var re=/a[a-z0-9A-Z]c/;

alert(re.test(str));

-------------------------------------------------------------

\b:獨立的部分 (起始,結束,空格)

 

var str='onetwo';

// var re= /\bone/; //true

var re= /one\b/; //false

alert(re.test(str));

 

-------------------------------------------------------------
重覆子項


// \1 :重覆的第一個子項
// \2 :重覆的第二個子項

var str = 'abca';
var re = /(a)(b)(c)\1/; //true
// var re = /(a)(b)(c)\2/; //false

alert(re.test(str));

 


// var re = /\w\w/; //c9
// var re = /(\w)\1/; //cc 99

-------------------------------------------------------------
找出出現次數最多的字元和次數

var str='ahlihkhkjsssssssssssssdasdasdasdasdsdafafqrghjff';

var arr = str.split(''); //分割成數組

str=arr.sort().join('');//數組連成字元串

var re=/(\w)\1+/g;
var index=0;
var value='';

str.replace(re,function ($0,$1) {
if (index<$0.length) {
index=$0.length;
value=$1;
}
})

-------------------------------------------------------------

匹配中文:[\u4e00-\u9fa5]
行首行尾空格:^\s*|\s*$
Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$
網址:[a-zA-z]+://[^\s]*
QQ號:^[1-9][0-9]{4,9}$
郵政編碼:[1-9]\d{5}
身份證:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x


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

-Advertisement-
Play Games
更多相關文章
  • 1.定義 定義對象間一種一對多的依賴關係,使得當每一個對象改變狀態,則所有依賴於它的對象都會得到通知並自動更新。 2.類圖 3.代碼示例 我們定義一個場景:熱水壺在燒開水,小孩和媽媽都關註燒開水的過程,各自有其處理方法。用while死迴圈一直輪詢雖然可以實現這樣的場景,但性能上讓人無法接受。 為方便 ...
  • ajax簡介 AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML),是指一種創建互動式網頁應用的網頁開發技術。Ajax不是一種新的編程語言,而是使用現有標準的新方法。AJAX可以在不重新載入整個頁面的情況下,與伺服器交換數據。這種非同步交互的 ...
  • soChange一款多很經典的幻燈片的jQuery插件。 實例預覽 引入文件 複製 使用方法 複製 複製 soChange參數 複製 soChange 即 simple object change ,對象切換插件,充分發揮css樣式的靈活性,不僅僅適用於圖片相冊,也適用於選項卡或文字類型的切換,以上 ...
  • js代碼: 游戲的對象 ,食物,蛇 ,游戲控制思路如下 (完整代碼在https://github.com/774044859yf/ObjectSnakeGame下載) var snake = { ...
  • [1]參數預設值 [2]rest參數 [3]擴展運算符 [4]箭頭函數 ...
  • jQuery.data的是jQuery的數據緩存系統。它的主要作用就是為普通對象或者DOM元素添加數據。 1 內部存儲原理 這個原理很簡單,原本要添加在DOM元素本身的數據,現在被集中的存儲在cache集合中。它們之間靠一個從1開始的數字鍵來聯繫著。這樣DOM元素就不會像以前那麼笨重了,更不會出現以... ...
  • 一、引言 前面我們介紹了有關於內置對象的很多很多的API,講道理得話如果想徹底的掌握那一定要經過一定的代碼段沉澱下。大家可以想象一下,既然在程式中有很多的內置對象供我們使用,那我們是不是也可以定義一些對象作為我們自己的特用對象呢?答案肯定是可以的。 二、導入 在工作中根據內容需求不同我們可以定義不同 ...
  • 在JavaScript的學習當中,this關鍵字的出現頻率可不低,所以想想有必要對this關鍵字做一個總結。在總結過程中,參考的資料來源於書本及網上。 一、定義 1、this是函數內部的一個特殊對象(或this引用)--它引用的是函數據以執行的環境對象。(來源於JavaScript高級程式設計) 2 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...