常用正則表達式(字符)


校驗郵箱正則表達式

  // 校驗郵箱規則
    var checkEmail = (rules, value, callback) => {
      const regEmail = /^([a-zA-Z0-9_-])+@+([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/
      if (regEmail.text(value)) {
        return callback()
      }
      callback(new error('請輸入合法的郵箱'))
    }

校驗手機號正則表達式

  // 校驗手機規則
    var checkMobile = (rules, value, cb) => {
      const regMobile = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57]|19[0267])[0-9]{8}$/
      if (regMobile.text(value)) {
        return cb()
      }
      cb(new error('請輸入合法的手機號'))
    }

校驗固定電話號正則表達式

 // 校驗固定電話號
 var checkTel= (rules, value, cb) => {
      const regtel = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)
      if (regtel.text(value)) {
        return cb()
      }
      cb(new error('請輸入合法的電話號'))
    }

校驗身份證正則表達式

 // 校驗身份證規則
  var checkIDcard = (rules, value, cb) => {
    const regIDcard = (^\d{15}$)|(^\d{17}([0-9]|X)$)
    if (regIDcard.text(value)) {
      return cb()
    }
    cb(new error('請輸入合法的身份證號'))
  }

其他常用

提取信息中的網絡鏈接: (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

提取信息中的郵件地址: \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

提取信息中的圖片鏈接: (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

提取信息中的IP地址: (\d+)\.(\d+)\.(\d+)\.(\d+)

提取信息中的中國電話號碼(包括移動和固定電話): (\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}

提取信息中的中國郵政編碼: [1-9]{1}(\d+){5}

提取信息中的中國身份證號碼: \d{18}|\d{15}

提取信息中的整數: \d+

提取信息中的浮點數(即小數): (-?\d*)\.?\d+

提取信息中的任何數字: (-?\d*)(\.\d+)?

提取信息中的中文字符串: [\u4e00-\u9fa5]*

提取信息中的雙字節字符串 (漢字): [^\x00-\xff]*
使用正則表達式的方法
方法 描述
exec 一個在字符串中執行查找匹配的RegExp方法,它返回一個數組(未匹配到則返回 null)。
test 一個在字符串中測試是否匹配的RegExp方法,它返回 true 或 false。
match 一個在字符串中執行查找匹配的String方法,它返回一個數組,在未匹配到時會返回 null。
matchAll 一個在字符串中執行查找所有匹配的String方法,它返回一個迭代器(iterator)。
search 一個在字符串中測試匹配的String方法,它返回匹配到的位置索引,或者在失敗時返回-1。
replace 一個在字符串中執行查找匹配的String方法,並且使用替換字符串替換掉匹配到的子字符串。
split 一個使用正則表達式或者一個固定字符串分隔一個字符串,並將分隔后的子字符串存儲到數組中的 String 方法。

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

特殊字符

正則表達式標志
標志 描述
g 全局搜索。
i 不區分大小寫搜索。
m 多行搜索。
s 允許 . 匹配換行符。
u 使用unicode碼的模式進行匹配。
y 執行“粘性”搜索,匹配從目標字符串的當前位置開始,可以使用y標志。

 

字符 含意
\

做為轉意,即通常在"\"后面的字符不按原來意義解釋,如/b/匹配字符"b",當b前面加了反斜桿后/\b/,轉意為匹配一個單詞的邊界。 
-或- 
對正則表達式功能字符的還原,如"*"匹配它前面元字符0次或多次,/a*/將匹配a,aa,aaa,加了"\"后,/a\*/將只匹配"a*"。

^ 匹配一個輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
$ 匹配一個輸入或一行的結尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/將匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/將匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba*/將匹配b,ba
(x) 匹配x保存x在名為$1...$9的變量中
x|y 匹配x或y
{n} 精確匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配這個集合中的任一一個字符(或元字符)
[^xyz] 不匹配這個集合中的任何一個字符
[\b] 匹配一個退格符
\b 匹配一個單詞的邊界
\B 匹配一個單詞的非邊界
\cX 這兒,X是一個控制符,/\cM/匹配Ctrl-M
\d 匹配一個字數字符,/\d/ = /[0-9]/
\D 匹配一個非字數字符,/\D/ = /[^0-9]/
\n 匹配一個換行符
\r 匹配一個回車符
\s 匹配一個空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一個非空白字符,等於/[^\n\f\r\t\v]/
\t 匹配一個制表符
\v 匹配一個重直制表符
\w 匹配一個可以組成單詞的字符(alphanumeric,這是我的意譯,含數字),包括下划線,如[\w]匹配"$5.98"中的5,等於[a-zA-Z0-9]
\W 匹配一個不可以組成單詞的字符,如[\W]匹配"$5.98"中的$,等於[^a-zA-Z0-9]。

 使用方式

用re = new RegExp("pattern",["flags"]) 的方式比較好 
pattern : 正則表達式 
flags: g (全文查找出現的所有 pattern) 
i (忽略大小寫) 
m (多行查找)

vaScript動態正則表達式問題

請問正則表達式可以動態生成嗎? 
例如JavaScript中: 
var str = "strTemp"; 
要生成: 
var re = /strTemp/; 
如果是字符連接: 
var re = "/" + str + "/"即可 
但是要生成表達式,可以實現嗎?怎樣實現?


免責聲明!

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



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