JavaScript RegExp 對象用法詳解
當您檢索某個文本時,可以使用一種模式來描述要檢索的內容。RegExp 就是這種模式。
簡單的模式可以是一個單獨的字符。
更復雜的模式包括了更多的字符,并可用于解析、格式檢查、替換等等。
您可以規(guī)定字符串中的檢索位置,以及要檢索的字符類型,等等。
1.基本用法
<script>
// 創(chuàng)建正則
var reg = /hello/
// 檢測某個字符串是否有符合正則格式的文本
var flag = reg.test("hello world")
console.log(flag) // true
</script>
2.修飾符
修飾符用于執(zhí)行區(qū)分大小寫和全局匹配
i 不區(qū)分大小寫
g 全局匹配
<script>
// 默認會區(qū)分大小寫
var reg = /hello/
var flag = reg.test("Hello World")
console.log(flag) // false
// 添加i修飾符 不區(qū)分大小寫
var reg2 = /hello/i
var flag2 = reg2.test("Hello World")
console.log(flag2) // true
var str = "I'm in a bad mood, really bad"
// 默認非全局匹配
var reg3 = /bad/
var newStr = str.replace(reg3,"good")
// 只替換了一個bad
console.log(newStr) // I'm in a good mood, really bad
// 全局匹配
var reg4 = /bad/g
var newStr2 = str.replace(reg4,"good")
// 替換了全局的bad為good
console.log(newStr2) // I'm in a good mood, really good
// 同時使用
var reg5 = /bad/gi
</script>
3.元字符
元字符是擁有特殊含義的字符:
. 查找單個字符,除了換行和行結束符。(通俗的說是任意字符)
- \d 匹配數(shù)字0-9
- \D 匹配非數(shù)字
- \s 匹配任意空白字符(不局限空格)
- \S 匹配非空白字符
- \w 元字符用于查找單詞字符。(單詞字符包括:a-z、A-Z、0-9,以及下劃線)
- \W 元字符用于查找非單詞字符。
4.方括號
方括號用于查找某個范圍內的字符
- [abc] 匹配中括號中存在的一個字符(a,b,c中的一個)
- [^abc] 匹配中括號中不存在的一個字符(除a,b,c中以外的字符)
- [0-9] 查找任何從 0 至 9 的數(shù)字。
- [a-z] 查找任何從小寫 a 到小寫 z 的字符。
- [A-Z] 查找任何從大寫 A 到大寫 Z 的字符。
- [A-z] 查找任何從大寫 A 到小寫 z 的字符。
5.量詞
- \d{6} 匹配6個數(shù)字
- \d{4,6} 匹配4到6個數(shù)字
- \d{4,} 匹配至少4個數(shù)字
- ? 0或1 超出1個不匹配
- + 至少1個
- * 0個或多個
.*會盡可能的匹配更長的字符(貪婪)
.*?會盡可能的匹配更短的字符(禁止貪婪)
\d{4,6} 會盡可能的匹配更長的字符(貪婪)
\d{4,6}? 會盡可能的匹配更短的字符(禁止貪婪)
6.邊界匹配
^n 匹配任何開頭為 n 的字符串。
n$ 匹配任何結尾為 n 的字符串。
7.實例
匹配手機號
var reg = /^1\d{10}$/;
匹配QQ號
var reg = /^[1-9]\d{4,10}$/;
匹配身份證號
var reg = /^[1-9]\d{16}[Xx\d]$/;
變量名檢測(只能由字母,數(shù)字,下劃線組成,且不能以數(shù)字開頭,長度6-15)
var reg = /^[A-z_]\w{5,14}$/;
8.相關方法
test():檢測正則表達式是否能在指定字符串中查找到匹配的文本
<script>
var str = "hi66morning77"
// 匹配連續(xù)的3個數(shù)字
var reg = /\d{3}/
console.log(reg.test(str)) // false
// 匹配連續(xù)的7個小寫字母
var reg2 = /[a-z]{7}/
console.log(reg2.test(str)) // true
</script>
match():查找字符串,將符合正則表達式規(guī)則的文本以數(shù)組形式返回,如果沒有指定全局匹配,則只查找一次。找不到就返回null
<script>
var str = "hi66morning77"
// 匹配連續(xù)的2個數(shù)字 非全局匹配
var reg = /\d{2}/
console.log(str.match(reg)[0]) // 66
// 匹配連續(xù)的2個數(shù)字 全局匹配(推薦)
var reg2 = /\d{2}/g
console.log(str.match(reg2)) // ["66", "77"]
</script>
search():返回目標自字符串第一次出現(xiàn)的索引值(所以全局匹配被忽略)
<script>
var str = "hi66morning77"
// 匹配連續(xù)的2個數(shù)字 非全局匹配
var reg = /\d{2}/
console.log(str.search(reg)) // 2
// 匹配a,b,m中的一個
var reg2 = /[abm]/
console.log(str.search(reg2)) // 4
</script>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
微信小程序訂閱消息(java后端實現(xiàn))開發(fā)
這篇文章主要介紹了微信小程序訂閱消息(java后端實現(xiàn))開發(fā),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
js中toString()和String()區(qū)別詳解
本文主要介紹了js中toSring()和Sring()的區(qū)別。具有很好的參考價值。下面跟著小編一起來看下吧2017-03-03
JavaScript實現(xiàn)的原生態(tài)兼容IE6可調可控滾動文字功能詳解
這篇文章主要介紹了JavaScript實現(xiàn)的原生態(tài)兼容IE6可調可控滾動文字功能,簡單說明了文字滾動的實現(xiàn)原理并結合具體實例形式給出了javascript文字滾動功能的具體實現(xiàn)代碼,需要的朋友可以參考下2017-09-09
網頁爬蟲之cookie自動獲取及過期自動更新的實現(xiàn)方法
這篇文章主要介紹了網頁爬蟲之cookie自動獲取及過期自動更新的實現(xiàn)方法,需要的朋友可以參考下2018-03-03

