日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端基础21:正则基础

發布時間:2025/3/8 HTML 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端基础21:正则基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正則

正則驗證

var str = 'hello';var reg = /ll/;reg.test(str)//true 復制代碼
  • 正則原型上有一個test方法,可以讓所得正則實例調用,返回一個Boolean值 ###量詞元素符 |符號|意義| |--|--| |*|表示0到多次| |+|表示1到多次| |?|表示0或者1次| |{n}|表示出現n次| |{n,}|表示出現n到多次| |{n,m}|表示出現n到m次|

特殊元字符

符號意義
\d匹配一個數字字符
\D匹配非數字
\w匹配A-Z,a-z,0-9
\W匹配非單詞字符
\s匹配任意空字符
\b匹配邊界字符
x|y匹配x或y
[zyx]表示xyz任意一個
[^zyx]匹配不是zxy任何一個
[a-z]匹配a-z的任意一個
[^a-z]匹配非a-z
^代表以什么開頭
$代表以什么結束
.代表任何字符(除了\n)
|表示轉意
\n換行符
?:只匹配不捕獲
  • 分組:var reg = /1(8|1)9/
    • 功能: - 1.提高優先級明確規則 - 2.分組引用 -
  • []里面大部分本來有意義的符號變成普通的字符

修飾符

符號意義
g全局匹配
i忽略大小寫
m行首行尾
  • 每一個正則都有一個global,若加g則這個值為true,否則為false

正則捕獲

  • exec 參數:
    • 1.result是一個數組
    • 2.數組的第一項:是正則捕獲到的字符
    • 3.數組的第二項:是第一個小括號里面正則匹配到的字符(若多個小括號以此類推)
    • 4.index屬性:表示正則開始匹配的位置在原字符串的索引
    • 5.input屬性:表示需要匹配的字符串

reg.lastIndex

  • 1.每一個正則都有一個lastIndex 默認值為0
  • 2.lastIndex就是正則下一次匹配驗證在的位置的索引

每次reg.test后,通過RegExp.$n可以捕獲到第n個分組的內容

var reg = /(\d)(\d)/g;var str = '123';reg.test(str);console.log(RegExp.$1);//1console.log(RegExp.$2);//2 復制代碼

match

  • 字符串的方法match傳入一個正則
  • 如果正則帶g,以數組形式返回匹配到的結果
var reg2 = /(\d{2})-(\d{2})/g;var str2 = 'a11-22b22-33';console.log(str2.match(reg2));//["11-22", "22-33"] 復制代碼
  • 如果傳入match的正則沒有帶g,那么返回效果和reg.exec是一樣的
var reg2 = /(\d{2})-(\d{2})/;var str2 = 'a11-22b22-33';console.log(str2.match(reg2));//["11-22", "11", "22", index: 1, input: "a11-22b22-33", groups: undefined]復制代碼
  • 返回一個數組,第一項是正則匹配到的字符,第二項是第一個分組捕獲到的字符(以此類推)和exec屬性相同

replace

  • 1.第一項是正則匹配的內容
  • 2.第二項到倒數第三項是分組的內容(分組依次類推)
  • 3.倒數第二項是本次匹配成功的內容的開始索引
  • 4.倒數第一項是需要匹配的字符串
  • 5.字符串的內容能被正則匹配到幾次,后面的內容執行(callback)幾次就會執行幾次
var str4 = 'a11-22b22-33c'var str5 = str4.replace(/(\d{2})-(\d{2})/g,function () {console.log(arguments);}); 復制代碼
  • 6.每次return的內容會把匹配到的內容替換
var str4 = 'a11-22b22-33c'var str6 = str4.replace(/(\d{2})-(\d{2})/g,function () {return 'T';})console.log(str6);//aTbTc 復制代碼
  • 思考:
//思考題//格式化時間->時間按照指定的格式拼接成新的字符串var str = "2017-08-10 15:30:45";var tempStr = "{0}年{1}月{2}日 {3}時{4}分{5}秒";//->2017年08月10日 15時30分45秒var reg1 = /\d+/g;var res1 = str.match(reg1);var reg2 = /\{(\w)\}/g;var res2 = tempStr.replace(reg2,function ($1,$2) {return res1[$2];})console.log(res2); 復制代碼

轉載于:https://juejin.im/post/5b9e38516fb9a05d0f16cc49

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的前端基础21:正则基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。