溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在JavaScript中使用RegExp 對象

發布時間:2021-03-31 17:40:37 來源:億速云 閱讀:169 作者:Leah 欄目:web開發

這篇文章給大家介紹如何在JavaScript中使用RegExp 對象,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1.基本用法

<script>
  // 創建正則
  var reg = /hello/
  // 檢測某個字符串是否有符合正則格式的文本
  var flag = reg.test("hello world")
  console.log(flag) // true
</script>

2.修飾符

修飾符用于執行區分大小寫和全局匹配

i 不區分大小寫

g 全局匹配

<script>
  // 默認會區分大小寫
  var reg = /hello/
  var flag = reg.test("Hello World")
  console.log(flag) // false
  // 添加i修飾符 不區分大小寫
  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 匹配數字0-9

  • \D 匹配非數字

  • \s 匹配任意空白字符(不局限空格)

  • \S 匹配非空白字符

  • \w 元字符用于查找單詞字符。(單詞字符包括:a-z、A-Z、0-9,以及下劃線)

  • \W 元字符用于查找非單詞字符。

4.方括號

方括號用于查找某個范圍內的字符

  • [abc] 匹配中括號中存在的一個字符(a,b,c中的一個)

  • [^abc] 匹配中括號中不存在的一個字符(除a,b,c中以外的字符)

  • [0-9] 查找任何從 0 至 9 的數字。

  • [a-z] 查找任何從小寫 a 到小寫 z 的字符。

  • [A-Z] 查找任何從大寫 A 到大寫 Z 的字符。

  • [A-z] 查找任何從大寫 A 到小寫 z 的字符。

5.量詞

  • \d{6} 匹配6個數字

  • \d{4,6} 匹配4到6個數字

  • \d{4,} 匹配至少4個數字

  • ? 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]$/;

變量名檢測(只能由字母,數字,下劃線組成,且不能以數字開頭,長度6-15)

var reg = /^[A-z_]\w{5,14}$/;

8.相關方法

test():檢測正則表達式是否能在指定字符串中查找到匹配的文本

<script>
  var str = "hi66morning77"
  // 匹配連續的3個數字
  var reg = /\d{3}/
  console.log(reg.test(str)) // false
  // 匹配連續的7個小寫字母
  var reg2 = /[a-z]{7}/
  console.log(reg2.test(str)) // true
</script>

match():查找字符串,將符合正則表達式規則的文本以數組形式返回,如果沒有指定全局匹配,則只查找一次。找不到就返回null

<script>
  var str = "hi66morning77"
  // 匹配連續的2個數字 非全局匹配
  var reg = /\d{2}/
  console.log(str.match(reg)[0]) // 66
  // 匹配連續的2個數字 全局匹配(推薦)
  var reg2 = /\d{2}/g
  console.log(str.match(reg2)) // ["66", "77"]  
</script>

search():返回目標自字符串第一次出現的索引值(所以全局匹配被忽略)

<script>
  var str = "hi66morning77"
  // 匹配連續的2個數字 非全局匹配
  var reg = /\d{2}/
  console.log(str.search(reg)) // 2
  // 匹配a,b,m中的一個
  var reg2 = /[abm]/
  console.log(str.search(reg2))  // 4   
</script>

關于如何在JavaScript中使用RegExp 對象就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女