js : RegExp

$(document).ready和window.onload的區(qū)別

  • $(document).ready DOM結(jié)構(gòu)加載完之后執(zhí)行
  • window.onload 等頁(yè)面所有的東西包括圖片、視頻等都加在完之后執(zhí)行

同步 和 異步

  • 區(qū)別:
    • 同步:如果當(dāng)前任務(wù)沒(méi)有完成,不會(huì)開(kāi)始下一個(gè)任務(wù)
    • 異步:當(dāng)前任務(wù)沒(méi)完成,繼續(xù)開(kāi)始下一個(gè)任務(wù),可以同時(shí)進(jìn)行很多個(gè)任務(wù)
  • 所有的循環(huán)都是同步
  • 常見(jiàn)的異步:
    • 事件 oDiv.onclick = function(){}
    • ajax
    • 回調(diào) sort(function(){})
    • 定時(shí)器 setInterval(function(){},1000)

正則

  • 概念:正則就是規(guī)則,就是操作“字符串”
    • 作用
      • 匹配
      • 捕獲字符串
  • 正則的寫法
    • 字面量的寫法: var reg = /^2\d{2}$/g 2xx
    • 實(shí)例寫法: var reg = new RegExp('^2\d{2}$');
  • 字面量創(chuàng)建和實(shí)例創(chuàng)建的區(qū)別
    • 字面量創(chuàng)建特殊含義 \d 這類的不需要轉(zhuǎn)義,但是實(shí)例需要轉(zhuǎn)義
    • 字面量創(chuàng)建無(wú)法進(jìn)行變量的拼接,但是實(shí)例創(chuàng)建可以拼接變量
  • 正則有兩部分構(gòu)成:
  • 元字符
    • 具有特殊含義的字符
元字符 含義
\ 轉(zhuǎn)義
"|"
() 分組
. 除了\n以外的字符
\n 換行
\b 開(kāi)頭結(jié)尾和空格
^ 開(kāi)頭
$ 結(jié)尾
\s 空格
\S 非空格
\d 數(shù)字
\D 非數(shù)字
\w 數(shù)字字母下劃線
\W 非數(shù)字字母下劃線
[abc] 其中的任意一個(gè)
[^abc] 非其中的任意一個(gè)
  • 量詞元字符
元字符 含義
* 0到多個(gè)
+ 1到多個(gè)
0 或 1
{n} 正好n個(gè)
{n,} n到多個(gè)
{n,m} n到m個(gè)
  • 修飾符
修飾符 含義
g 全局
i 忽略大小寫
m 換行
  • () 的作用
    • 提高優(yōu)先級(jí):只要使用到 | 的地方,一定要加 ()
    • 分組
    • 小分組
  • []的作用
    • 中括號(hào)中的內(nèi)容只能出現(xiàn)一個(gè)
    • 中括號(hào)中. - + 都是他正常的意思,沒(méi)有特殊含義

正則中的主要作用

  • 匹配
    • reg.test()
    • 因?yàn)槠ヅ浞祷氐氖遣紶栔?,所以一般在條件判斷語(yǔ)句和返回值中
  • 捕獲
    • reg.exec()
    • 主要的比較對(duì)象 str.match();

字符串的方法

  • str.search(正則)
  • str.split(正則)
  • str.match(正則)
  • str.replace(正則)

正則捕獲的兩大特性

  • 懶惰性
    • 用全局g來(lái)解決
  • 貪婪性
    • 在量詞元字符后面加上?號(hào)

正則的屬性

  • reg.test() 匹配
  • reg.exec() 捕獲
  • reg.global() 判斷是否有全局修飾符
  • res.lastIndex() 從哪里開(kāi)始查找,一定要加g,否則永遠(yuǎn)從0開(kāi)始找
  • res.toString() 把正則轉(zhuǎn)為字符串

? 的作用

  • 可有可無(wú) ?
  • 解決捕獲時(shí)候的貪婪性; +?
  • 只匹配,不捕獲; (?:)

正則的捕獲方法: exec 和 match

  • 一般情況下,返回值是一個(gè)長(zhǎng)度為3的數(shù)組;如果有小分組的時(shí)候,小分組從索引為1開(kāi)始依次往后累加;把找到的內(nèi)容的索引和原始字符串推到最后
  • 如果沒(méi)有全局g,lastIndex永遠(yuǎn)從索引為0的時(shí)候開(kāi)始找,加了全局g,lastIndex從找到內(nèi)容的下一項(xiàng)內(nèi)容的索引開(kāi)始查找;
  • exec 和 match 的區(qū)別
    • 有g(shù):exec每次只能拿到一個(gè)符合條件的數(shù)組,但是可以有小分組; match可以拿到所有符合規(guī)則的內(nèi)容,以一個(gè)新數(shù)組的形式返回,但是無(wú)法拿到小分組
    • 無(wú)g:exec和match拿到的值時(shí)一樣的;

正則捕獲的方法

  1. exec
  2. match
  3. replace

重復(fù)子項(xiàng)

  • \1 代表跟第一個(gè)小分組一模一樣
  • \2 代表跟第二個(gè)小分組一模一樣

知識(shí)大致整理:

  1. [] 的注意事項(xiàng)

    • 中括號(hào)中像 . - _ + 等都沒(méi)有特殊含義;如果放在小括號(hào)中 (+)
    • 中括號(hào)不會(huì)出現(xiàn)兩位數(shù),只有一位數(shù)
  2. ()的用法

    • 分組
    • 小分組:只想匹配,不想捕獲 (?:XXX)
    • 提高優(yōu)先級(jí)的作用
  3. ? 的作用

    • 可有可無(wú) []?
    • 解決貪婪性,需要在量詞后面加 ?
    • 只想匹配,不想捕獲(?:xxx)
  4. 捕獲,兩大特性

    • 懶惰性
      • 解決辦法:g
    • 貪婪性
      • 解決辦法:(?:xxx)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容