正則RegExp


正則是所有的編程語言里統一的語法,盡管執行方法不同,但是正則的寫法是一樣的,目的是為了處理字符串數據,處理的方式有剪切,驗證格式,正則表達式寫在兩條正斜杠里【/】

// 基礎
var reg = /123abc/

// 匹配開始【^】
// 必須是123開頭的
var reg = /^123/  //123,123333,123....

// 匹配結束【$】
// 必須是123結束的
var reg = /123$/  //123,123123,...123

// 匹配【^】和【$】
var reg = /^123$/  //123,其他都不行

// 對比上面
var reg = /123/  //123,4412344,連在一起有出現就行

// 數量【{}】,連續的出現幾次,參數可以是一個到兩個
// 當參數是一個時表示必須是連續的重復出現這么多次
// 當參數是兩個時,第一個參數是至少出現幾次,第二個是最多出現幾次,第二個參數不填{1,} 表示無限次
var reg = /4{2}/  //124433,44
var reg = /4{2,3}/ //12445,444123

// 數量的代表符號
【*】表示零次或者無限次,{0,}的意思 
【+】表示一次或者無限次,{1,}的意思 
【?】表示零次或者一次,{0,1}的意思 

// 括號【()】表示一起
var  reg = /14{2}/  //144
var  reg = /(14){2}/  //1414

// 集合【[]】表示所包含的任意一個字符
var  reg = /[0123]/
var  reg = /[pdt]{5}/  // 15ptdp66 區間內任意的字符出現5次,不需要順序 

// 區間集合【[x-y]】,集合的一種簡易寫法
var  reg = /[0-9]/  // 表示0到9的所有數字
var  reg = /[a-z]/
var  reg = /[A-Z]/

// 集合的反向【[^123]】
var reg = /[^123]/ //除了123外的所有
var reg = /[^0-9]/ // 除了0123456789之外的

// 點【.】
// 匹配除了 /n 外的任何單個字符 
var reg = /^1.3$/  // 123,143,1a3

// 轉義【\加符號】
var reg = /\./ // 被轉義的點就是點的意思了,不是上面的點的意思了
var reg = /\\,\[,\],\$,\^/  //在正則里有含義的符號想要去除含義都需要轉義,逗號在正則里沒意義所以不需要轉義

// 轉義【\加字母】
var reg = /\d/  // 就是[0-9]的簡寫
var reg = /\D/  // 就是[^0-9]的簡寫
var reg = /\f/  // 換頁符
var reg = /\n/  // 換行符
var reg = /\r/  // 回車符
var reg = /\s/  // 匹配一個空白字符,包括空格,換行換頁回車
var reg = /\S/  // 非空白字符
var reg = /\w/  // 就是[A-Za-z0-9]的簡寫
var reg = /\W/  // 就是[^A-Za-z0-9]的簡寫

// 或者【x|y】
// 如果豎杠,豎杠兩端的內容如果很長需要用括號包起來表示一個整體
var reg = /1|2/
var reg = /(^[1-3]$)|(^[6-9]$)/

常用正則

// 手機
var phone = /^[1]{1}[0-9]{10}/

// 身份證
var idCard = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
            
// 過濾表情符號
var emojoReg = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/

js的正則方法

var reg = /\d+/
var str = "aaa111bbb222bbb"
reg.text(str)  //最常用
str.replace(reg,newStr)  //返回一個新的字符串
str.match(reg)   // 返回一個數組,數組裝着符合正則條件的字符串
str.split(reg)  //  返回一個數組,數組裝着沒被正則匹配的被切割的字符串

上面的replace,match正則如果使用普通的正則只會匹配第一個符合的條件然后返回,如果想讓全字符串匹配,可以使用for循環進行遞歸或者在正則最后的【/】后面加上字母【g】,這個【g】只有js能用

var reg = /\d+/g
var str = "aaa111bbb222bbb"
str.replace(reg,newStr) //可以對比上面的代碼的輸出
str.match(reg)  //可以對比上面的代碼的輸出

java的正則方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM