有兩種方法:
1、通過建構函式建立
var reg = new regexp('reg');
2、通過字面量的方式建立
var reg = /reg/
1、 i 忽略大小寫
2、 g 全域性匹配
3、 m 多行匹配
例如:var reg = /ab/i
相當於var reg = /[aa][bb]/
先看乙個例子:
var reg = /[0-9] /
它的意思是匹配4位0-9的數字
量詞一般都是寫在{}
的裡面,它只控制它前面的一位,如果想要控制多個需要用()
分組,當然它也有其他的表示方法例如:
?
代表的意思是0或1,相當於,⚠️量詞可以是範圍
*
是有沒有都可以 ,等價於
+
是至少匹配乙個,等價於
.
是任意字元
^
匹配輸入字串開始的位置。
$
匹配輸入字串結尾的位置。
\b
匹配乙個單詞邊界,即字與空格間的位置。
\b
非單詞邊界匹配。
\w
匹配字母、數字、下劃線。等價於』[a-za-z0-9_]』。
\w
匹配非字母、數字、下劃線。等價於 『[^a-za-z0-9_]』。
\d
匹配乙個數字字元。等價於 [0-9]。
\d
匹配乙個非數字字元。等價於 [^0-9]。
… 還有好多
要匹配這些特殊字元,必須首先使字元"轉義",即,將反斜槓字元放在它們前面。
對乙個正規表示式模式或部分模式兩邊新增圓括號將導致相關匹配儲存到乙個臨時緩衝區中,所捕獲的每個子匹配都按照在正規表示式模式中從左到右出現的順序儲存。緩衝區編號從 1 開始,最多可儲存 99 個捕獲的子表示式。每個緩衝區都可以使用 \n 訪問
例如:\1 指定第乙個子匹配項。
var reg = /(ab)c\1/
正則預設的是貪婪匹配,回量詞允許的最大長度
量詞後面加上?
開啟非貪婪匹配(量詞允許的最小長度)
var reg = /\w/
console.log(reg.exec("asdasdsadsadd"))
結果: asdasd
var reg = /\w?/
console.log(reg.exec("asdasdsadsadd"))
結果: asd
(?=exp)
正向前瞻 匹配後面滿足表示式exp的位置
(?!exp)
負向前瞻 匹配後面不滿足表示式exp的位置
search 檢索與正規表示式匹配的值
match 找到乙個或多個正規表示式的匹配
replace 替換與正規表示式匹配的字串
split 把字串分割成陣列
test 檢索字串中指定的值,返回true或false
exec 檢索字串中指定的值,返回找到的值
正則小技巧
前兩天在csdn看到這樣乙個問題 給定一段文字的編碼序列,如604f20007d59 你 好 如何得到其對應的文字 有人給出了如下正則解決方案 string input 4f600020597d string patern string output regex.unescape regex.rep...
正則 小練習
1 匹配整數或者小數 包括正數和負數 2 匹配年月日日期 格式 2018 12 31 3 匹配qq號 5 12 首字元沒有0 4 11位的 號碼 5 長度為8 10位的使用者密碼 包含數字字母下劃線 6 匹配驗證碼 4位數字字母組成的 7 匹配郵箱位址 郵箱規則 之前必須有內容且只能是字母 大小寫 ...
java正則小理解
之前一直是以為正則沒什麼用處,就是個校驗前台表單提交的時候,郵箱格式是否正確啊,手機號碼是否合法啊 實際上很多現成的校驗我覺得並不能說明合法 而目前很多的前端框架也是提供這種校驗的,甚至只需要配置乙個email就可以表明這個input是要輸入郵箱的,校驗郵箱格式,完全不需要自己寫js來判斷,直到最近...