知道這 20 個正則表達式,能讓你少寫 1,000 行代碼

CocoaChina05-13

正則表達式,一個十分古老而又強大的文本處理工具,僅僅用一段非常簡短的表達式語句,便能夠快速實現一個非常復雜的業務邏輯。熟練地掌握正則表達式的話,能夠使你的開發效率得到極大的提升。下面是@技匠整理的,在前端開發中經常使用到的 20 個正則表達式。

正則表達式經常被用于字段或任意字符串的校驗,如下面這段校驗基本日期格式的 JavaScript 代碼:

varreg=/^ ( d{1,4} ) ( -|/ ) ( d{1,2} ) 2 ( d{1,2} ) $/;varr=fieldValue.match ( reg ) ;if ( r==null ) alert ( 'Dateformaterror!' ) ;

1. 校驗密碼強度

密碼的強度必須是包含大小寫字母和數字的組合,不能使用特殊字符,長度在 8-10 之間。

^ ( ?=.*d ) ( ?=.* [ a-z ] ) ( ?=.* [ A-Z ] ) .{8,10}$

2. 校驗中文

字符串僅能是中文。

^ [ u4e00-u9fa5 ] {0,}$

3. 由數字、26 個英文字母或下劃線組成的字符串

^w+$

4. 校驗 E-Mail 地址

同密碼一樣,下面是 E-mail 地址合規性的正則檢查語句。

[ w!#$%&'*+/=?^_`{|}~- ] + ( ?:. [ w!#$%&'*+/=?^_`{|}~- ] + ) *@ ( ?: [ w ] ( ?: [ w- ] * [ w ] ) ?. ) + [ w ] ( ?: [ w- ] * [ w ] ) ?

5. 校驗身份證號碼

下面是身份證號碼的正則校驗。15 或 18 位。

15 位:

^ [ 1-9 ] d{7} ( ( 0d ) | ( 1 [ 0-2 ] ) ) ( ( [ 0|1|2 ] d ) |3 [ 0-1 ] ) d{3}$

18 位:

^ [ 1-9 ] d{5} [ 1-9 ] d{3} ( ( 0d ) | ( 1 [ 0-2 ] ) ) ( ( [ 0|1|2 ] d ) |3 [ 0-1 ] ) d{3} ( [ 0-9 ] |X ) $

6. 校驗日期

"yyyy-mm-dd" 格式的日期校驗,已考慮平閏年。

^ ( ?: ( ?!0000 ) [ 0-9 ] {4}- ( ?: ( ?:0 [ 1-9 ] |1 [ 0-2 ] ) - ( ?:0 [ 1-9 ] |1 [ 0-9 ] |2 [ 0-8 ] ) | ( ?:0 [ 13-9 ] |1 [ 0-2 ] ) - ( ?:29|30 ) | ( ?:0 [ 13578 ] |1 [ 02 ] ) -31 ) | ( ?: [ 0-9 ] {2} ( ?:0 [ 48 ] | [ 2468 ] [ 048 ] | [ 13579 ] [ 26 ] ) | ( ?:0 [ 48 ] | [ 2468 ] [ 048 ] | [ 13579 ] [ 26 ] ) 00 ) -02-29 ) $

7. 校驗金額

金額校驗,精確到 2 位小數。

^ [ 0-9 ] + ( . [ 0-9 ] {2} ) ?$

8. 校驗手機號

下面是國內 13、15、18 開頭的手機號正則表達式。(可根據目前國內收集號擴展前兩位開頭號碼)

^ ( 13 [ 0-9 ] |14 [ 5|7 ] |15 [ 0|1|2|3|5|6|7|8|9 ] |18 [ 0|1|2|3|5|6|7|8|9 ] ) d{8}$

9. 判斷 IE 的版本

IE 目前還沒被完全取代,很多頁面還是需要做版本兼容,下面是 IE 版本檢查的表達式。

^.*MSIE [ 5-8 ] ( ?:. [ 0-9 ] + ) ? ( ?!.*Trident/ [ 5-9 ] .0 ) .*$

10. 校驗 IP-v4 地址

IP4 正則語句。

b ( ?: ( ?:25 [ 0-5 ] |2 [ 0-4 ] [ 0-9 ] | [ 01 ] ? [ 0-9 ] [ 0-9 ] ? ) . ) {3} ( ?:25 [ 0-5 ] |2 [ 0-4 ] [ 0-9 ] | [ 01 ] ? [ 0-9 ] [ 0-9 ] ? ) b

11. 校驗 IP-v6 地址

IP6 正則語句。

( ( [ 0-9a-fA-F ] {1,4}: ) {7,7} [ 0-9a-fA-F ] {1,4}| ( [ 0-9a-fA-F ] {1,4}: ) {1,7}:| ( [ 0-9a-fA-F ] {1,4}: ) {1,6}: [ 0-9a-fA-F ] {1,4}| ( [ 0-9a-fA-F ] {1,4}: ) {1,5} ( : [ 0-9a-fA-F ] {1,4} ) {1,2}| ( [ 0-9a-fA-F ] {1,4}: ) {1,4} ( : [ 0-9a-fA-F ] {1,4} ) {1,3}| ( [ 0-9a-fA-F ] {1,4}: ) {1,3} ( : [ 0-9a-fA-F ] {1,4} ) {1,4}| ( [ 0-9a-fA-F ] {1,4}: ) {1,2} ( : [ 0-9a-fA-F ] {1,4} ) {1,5}| [ 0-9a-fA-F ] {1,4}: ( ( : [ 0-9a-fA-F ] {1,4} ) {1,6} ) |: ( ( : [ 0-9a-fA-F ] {1,4} ) {1,7}|: ) |fe80: ( : [ 0-9a-fA-F ] {0,4} ) {0,4}% [ 0-9a-zA-Z ] {1,}|:: ( ffff ( :0{1,4} ) {0,1}: ) {0,1} ( ( 25 [ 0-5 ] | ( 2 [ 0-4 ] |1{0,1} [ 0-9 ] ) {0,1} [ 0-9 ] ) . ) {3,3} ( 25 [ 0-5 ] | ( 2 [ 0-4 ] |1{0,1} [ 0-9 ] ) {0,1} [ 0-9 ] ) | ( [ 0-9a-fA-F ] {1,4}: ) {1,4}: ( ( 25 [ 0-5 ] | ( 2 [ 0-4 ] |1{0,1} [ 0-9 ] ) {0,1} [ 0-9 ] ) . ) {3,3} ( 25 [ 0-5 ] | ( 2 [ 0-4 ] |1{0,1} [ 0-9 ] ) {0,1} [ 0-9 ] ) )?

12. 檢查 URL 的前綴

應用開發中很多時候需要區分請求是 HTTPS 還是 HTTP,通過下面的表達式可以取出一個 url 的前綴然后再邏輯判斷。

if ( !s.match ( /^ [ a-zA-Z ] +:/// ) ) {s='http://'+s;}

13. 提取 URL 鏈接

下面的這個表達式可以篩選出一段文本中的 URL。

^ ( f|ht ) {1} ( tp|tps ) :// ( [ w- ] +. ) + [ w- ] + ( / [ w-./?%&= ] * ) ?

14. 文件路徑及擴展名校驗

驗證 windows 下文件路徑和擴展名(下面的例子中為 .txt 文件)

^ ( [ a-zA-Z ] :|\ ) \ ( [ ^\ ] +\ ) * [ ^/:*?"| ] +.txt ( l ) ?$

15. 提取 ColorHexCodes

有時需要抽取網頁中的顏色代碼,可以使用下面的表達式。

^# ( [ A-Fa-f0-9 ] {6}| [ A-Fa-f0-9 ] {3} ) $

16. 提取網頁圖片

假若你想提取網頁中所有圖片信息,可以利用下面的表達式。

] * [ src ] *=* [ "' ] {0,1} ( [ ^"'> ] * )?

17. 提取頁面超鏈接

提取 html 中的超鏈接。

( ] * ) ( href="https?:// ) ( ( ?! ( ?: ( ?:www. ) ?'.implode ( '| ( ?:www. ) ?',$follow_list ) .' ) ) [ ^" ] + ) " ( ( ?!.*brel= ) [ ^> ] * ) ( ?: [ ^> ] * ) >

18. 查找 CSS 屬性

通過下面的表達式,可以搜索到相匹配的 CSS 屬性。

^s* [ a-zA-Z- ] +s* [ : ] {1}s [ a-zA-Z0-9s.# ] + [ ; ] {1}

19. 抽取注釋

如果你需要移除 HMTL 中的注釋,可以使用如下的表達式。

20. 匹配 HTML 標簽

通過下面的表達式可以匹配出 HTML 中的標簽屬性。

s ] + ) ) ? ) +s*|s* ) /?>

正則表達式的相關語法

下面是我找到的一張非常不錯的正則表達式 Cheat Sheet,可以用來快速查找相關語法。

?

學習正則表達式

?

我在網上看到了一篇相當不錯的正則表達式快速學習指南,有興趣繼續深入學習的同學可以參考。

?

正則表達式在線測試工具

?

regex101是一個非常不錯的正則表達式在線測試工具,你可以直接在線測試你的正則表達式哦。

?

如果你也收藏了非常有用的正則表達式,不妨也在點評中分享哦 ^_^

轉載于:https://www.cnblogs.com/sunshine-liuxin/p/5543685.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374606.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374606.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374606.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用Jackson進行Java JSON處理

JSON (Javascript對象符號)正成為一種非常流行的數據交換格式。 在使用諸如YUI,ExtJS,DOJO等Javascript框架開發Web應用程序時,我們可以使用XML或JSON在客戶端和服務器之間交換數據。 通常,我們從服務器獲得…

Android Togglebutton 默認背景被放大

1 . 最近在項目中自定義toggleButton 發現背景圖放入后 ,比美工給我的原圖要大很大 2. 為什么? 3.比較ToggleButton 和TextView源碼 發現, toggleButton 設置了minWidth 和minHeigh ,導致我的背景小圖被拉伸。 4.解決這種問題: 重…

MapReduce:簡單介紹

MapReduce是Google流行的一種并行編程技術。 它用于處理大量數據。 僅通過將工作并行分配給多臺機器,就可以在合理的時間內完成這種處理。 每臺機器都處理一小部分數據。 MapReduce是一種編程模型,使開發人員可以專注于編寫處理數據的代碼,而…

python翻譯詞典實例

#!/usr/bin/python # -*- coding:utf-8 -*- #通過有道翻譯來進行內容翻譯 import urllib2 import urllib import json #---------翻譯方法定義 start---------# def transfer( transferStr , lanSource auto ): data {type:lanSource,i:transferStr,doctype:json,xmlVersion:1…

元素分類--塊級元素(特點:獨占一行, 寬高邊距可改)

什么是塊級元素&#xff1f;在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是塊級元素。設置display:block就是將元素顯示為塊級元素。如下代碼就是將內聯元素a轉換為塊狀元素&#xff0c;從而使a元素具有塊狀元素特點。 a{display:b…

Java應用程序中的消息傳遞主體

消息傳遞是每個Java應用程序的關鍵方面&#xff0c;尤其是對于涉及企業應用程序集成&#xff08;EAI&#xff09;或關注點分離的應用程序&#xff0c;例如多層WEB應用程序。 消息傳遞可以分為兩個主要類別&#xff0c;即同步和異步。 另一方面&#xff0c;使用同步消息傳遞時&…

站立會議05(第二次沖刺)

一、站立會議信息&#xff08;配站立會議照片&#xff09; 第五天我們繼續開發&#xff0c;把注冊驗證信息完善一下&#xff0c;將開始網站公共主頁的開發。 二、任務進度 第五天我們注冊驗證完成。 三、任務看板&#xff08;圖&#xff09; 四、燃盡圖&#xff08;圖&#xff…

[SoapUI] DataSource, DataSourceLoop, DataSink

Script assertion in login: 轉載于:https://www.cnblogs.com/MasterMonkInTemple/p/4748189.html

1154. 一年中的第幾天

給你一個字符串 date &#xff0c;按 YYYY-MM-DD 格式表示一個 現行公元紀年法 日期。請你計算并返回該日期是當年的第幾天。 通常情況下&#xff0c;我們認為 1 月 1 日是每年的第 1 天&#xff0c;1 月 2 日是每年的第 2 天&#xff0c;依此類推。每個月的天數與現行公元紀年…

將CAPTCHA添加到您的GWT應用程序

什么是驗證碼&#xff1f; 在一個充滿惡意機器人的世界中&#xff0c;您該怎么做才能保護您寶貴的Web應用程序&#xff1f; 您真正應該做的基本事情之一就是向其中添加CAPTCHA功能。 如果您不熟悉&#xff08;聽起來有些奇怪&#xff09;&#xff0c;則CAPTCHA是確保用戶實際上…

SQL基礎語句

數據庫面試常見題 一、SQL語言包括數據定義語言、數據操作語言、數據控制語言和事務控制語言1&#xff1a;DDL(Data Definition Language)&#xff0c;是用于描述數據庫中要存儲的現實世界實體的語言。 CREATE TABLE - 創建新表 ALTER TABLE - 變更&#xff08;改變&#xff0…

YYModel Summary

YYModel Effect-> YYModel的作用Provide some data-model method—>提供一些數據模型的方法Convert json to any object, or convert any object to json.->對任何對象轉換成JSON&#xff0c;和對任何JSON轉換為對象Set object properties with a key-value dictionar…

iOS學習——ScrollView圖片輪播和同類控件優先級問題

iOS學習——ScrollView的使用和同類控件優先級問題 1. 布置界面 ScrollView的使用非常簡單&#xff0c;只有三步 1.1 添加一個scrollview 1.2 向scrollview添加內容 1.3 告訴scrollview中內容的實際大小 首先做第一步&#xff0c;布置界面。 拖拽一個scrollview就可以了 就…

Exchanger和無GC的Java

總覽 Exchanger類在線程之間傳遞工作和回收使用的對象方面非常有效。 AFAIK&#xff0c;它也是最少使用的并發類之一。 但是&#xff0c;如果您不需要GC&#xff0c;則使用ArrayBlockingQueue進行日志記錄會更簡單。 交換器類 Exchanger類對于在兩個線程之間來回傳遞數據很有…

構造函數的反射

1 import java.lang.reflect.Constructor;2 3 public class zzbds {4 public static void main(String[] args) {5 6 try{ 7 Class cStudent.class; //獲得無參構造函數8 Constructor constructorc.getConstructor(new Class[]{…

字符串連接“+”int、char、string

String s1 "21" "8" "54";System.out.println(s1);String s2 "21" 8 "54";System.out.println(s2);String s3 "21" 8 "54";System.out.println(s3);21854 21854 21854

使用Spring使用Java發送電子郵件– GMail SMTP服務器示例

對于使用Java發送電子郵件&#xff0c; JavaMail API是標準解決方案。 如官方網頁所述&#xff0c;“ JavaMail API提供了獨立于平臺和協議的框架來構建郵件和消息傳遞應用程序”。 必需的類包含在JavaEE平臺中&#xff0c;但是要在獨立的JavaSE應用程序中使用它&#xff0c;您…

Java字符與數字的計算

先看例子&#xff1a; char ch;int x;int y 7;System.out.print("7的ASCII碼值是&#xff1a;");System.out.println(y);ch 7 2;System.out.print("7 2的char型&#xff1a;");System.out.println(ch);x 7 2;System.out.print("7 2的int型&…

wordcount

源代碼如下 package org.apache.hadoop.examples; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io…

EJB 3.1全局JNDI訪問

如本系列前面的部分所述&#xff0c;EJB 3.0版規范的主要缺點是缺少可移植的全局JNDI名稱。 這意味著沒有可移植的方式將EJB引用鏈接到應用程序外部的Bean。 EJB v。3.1規范用自己的話填補了這一定義&#xff1a; “一個標準化的全局JNDI名稱空間和一系列相關的名稱空間&#…