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

歡迎訪問 生活随笔!

生活随笔

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

javascript

JS Regex

發布時間:2023/12/10 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS Regex 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

Regex


  • 匹配html標簽中的內容

    /(?<=>)[^>]+(?=<[\\/]?\\w+.*>)/g
  • 匹配html標簽

    /<[^>]+>/g const endReg = /<("[^"]*"|'[^']*'|[^'">])*>/g
  • html注釋

    /^<!--[\\s\\S]*?-->$/ const noteReg = /<!--(.*?)-->/gconst htmlStr = '<!--一個div標簽--> <div></div> <!--一個div標簽--> <div></div>'console.log(noteReg.exec(htmlStr)) // [ // '<!--一個div標簽-->', // '一個div標簽', // index: 0, // input: '<!--一個div標簽--> <div></div> <!--一個div標簽--> <div></div>', // groups: undefined // ] console.log(noteReg.exec(htmlStr)) // [ // '<!--一個div標簽-->', // '一個div標簽', // index: 27, // input: '<!--一個div標簽--> <div></div> <!--一個div標簽--> <div></div>', // groups: undefined // ]
  • 匹配html中的style

    const styleReg = /style="[^=>]*"([(\\s+\\w+=)|>])/gconst htmlStr = '<div style="background:#000;"><span style="color:#fff"></span></div>'console.log(styleReg.exec(htmlStr)) // [ // 'style="background:#000;">', // '>', // index: 5, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ] console.log(styleReg.exec(htmlStr)) // [ // 'style="color:#fff">', // '>', // index: 36, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ]
  • 匹配html中的顏色

    const colorReg = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/gconst htmlStr = '<div style="background:#000;"><span style="color:#fff"></span></div>'console.log(colorReg.exec(htmlStr)) // [ // '#000', // '000', // index: 23, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ] console.log(colorReg.exec(htmlStr)) // [ // '#fff', // 'fff', // index: 49, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ]
  • 是否html標簽(寬松匹配)

    /<(.*)>.*<\\/\\1>|<(.*) \\/>/ /<("[^"]*"|'[^']*'|[^'">])*>/g
  • 匹配img和src

    const imgReg = /<img.*?src=[\\"|\\']?(.*?)[\\"|\\']?\\s.*?>/igconst htmlStr = '<div></div><img src="sunshine.png" /><img src="sunshine111.png" />'console.log(imgReg.exec(htmlStr)) // [ // '<img src="sunshine.png" />', // 'sunshine.png', // index: 11, // input: '<div></div><img src="sunshine.png" /><img src="sunshine111.png" />', // groups: undefined // ] console.log(imgReg.exec(htmlStr)) // [ // '<img src="sunshine111.png" />', // 'sunshine111.png', // index: 37, // input: '<div></div><img src="sunshine.png" /><img src="sunshine111.png" />', // groups: undefined // ]
  • 大于等于0, 小于等于150, 支持小數位出現5, 如145.5, 用于判斷考卷分數

    /^150$|^(?:\\d|[1-9]\\d|1[0-4]\\d)(?:.5)?$/
  • 是否小數

    /^\\d+\\.\\d+$/ /^[-\\+]?\\d+(\\.\\d+)?$/
  • 保留n位小數

    function checkFloat(n) {return new RegExp(`^([1-9]+[\\d]*(.[0-9]{1,${n}})?)$`) } // 保留2位小數 const floatReg = checkFloat(2)
  • 整數

    /^[-+]?\\d*$/
  • 純數字

    /^\\d{1,}$/
  • 純英文字母

    /^[a-zA-Z]+$/
  • 純小寫英文字母組成

    /^[a-z]+$/
  • 純大寫英文字母

    /^[A-Z]+$/
  • 不能包含字母

    /^[^A-Za-z]*$/
  • 是否由數字和字母組成

    /^[A-Za-z0-9]+$/
  • 字符串長度n的校驗

    function checkStrLength(n) {return new RegExp(`^.{${n}}$`) }// 校驗長度為3的字符串 const lengthReg = checkStrLength(3)
  • 密碼強度正則

    • 最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符

      /^.*(?=.{6,})(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/
    • 必須包含字母、數字、特稱字符,至少8個字符,最多30個字符

      /(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}/
  • 微信號,6至20位,以字母開頭,字母,數字,減號,下劃線

    /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/
  • 是否qq號格式正確

    /^[1-9][0-9]{4,10}$/
  • 用戶名正則,4到16位(字母,數字,下劃線,減號)

    /^[a-zA-Z0-9_-]{4,16}$/
  • 純中文/漢字

    /[\\u4E00-\\u9FA5]/ /^(?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])+$/
  • 中國郵政編碼

    /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\\d{4}$/
    • 郵政編號的校驗

      /^\\d{6}$/
  • 只包含中文和數字

    /^((?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])|(\\d))+$/
  • 視頻鏈接地址(視頻格式可按需增刪)

    /^https?:\\/\\/.*?(?:swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)$/i
  • 圖片鏈接地址(圖片格式可按需增刪)

    /^https?:\\/\\/.*?(?:gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)$/i
  • base64格式

    /^\\s*data:(?:[a-z]+\\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*?)\\s*$/i
  • 電話(座機)

    /^0\\d{2,3}-\\d{7,8}$/
  • 手機號

    • 手機號

      /^[1][3,4,5,6,7,8,9][0-9]{9}$/
    • 中國手機號(嚴謹), 根據工信部2019年最新公布的手機號段

      /^(?:(?:\\+|00)86)?1(?:(?:3[\\d])|(?:4[5-7|9])|(?:5[0-3|5-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\\d])|(?:9[1|8|9]))\\d{8}$/
    • 中國手機號(寬松), 只要是13,14,15,16,17,18,19開頭即可

      /^(?:(?:\\+|00)86)?1[3-9]\\d{9}$/
    • 中國手機號(最寬松), 只要是1開頭即可, 如果你的手機號是用來接收短信, 優先建議選擇這一條

      /^(?:(?:\\+|00)86)?1\\d{10}$/
  • 身份證

    • 一代身份證號(15位數字)

      /^\\d{8}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}$/
    • 二代身份證號(18位數字),最后一位是校驗位,可能為數字或字符X

      /^\\d{6}(18|19|20)\\d{2}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}(\\d|X|x)$/
    • 身份證號, 支持1/2代(15位/18位數字)

      /(^\\d{8}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}$)|(^\\d{6}(18|19|20)\\d{2}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}(\\d|X|x)$)/
    • 身份證

      /^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$/
  • 時間

    • 檢查HH:mm

      /^(?:[01]\\d|2[0-3])(?::[0-5]\\d)$/;
    • HH:mm:ss

      /^(?:[01]\\d|2[0-3])(?::[0-5]\\d){2}$/;
    • 24小時制時間(HH:mm:ss)

      /^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/
    • 12小時制時間(hh:mm:ss)

      /^(?:1[0-2]|0?[1-9]):[0-5]\\d:[0-5]\\d$/
  • 日期

    /^\\d{4}(-)(1[0-2]|0?\\d)\\1([0-2]\\d|\\d|30|31)$/
    • YYYY-MM-DD

      /^\\d{4}(\\-)\\d{1,2}\\1\\d{1,2}$/
    • YYYY-MM-DD hh:mm:ss

      /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/
  • 郵箱地址(email)

    • 郵箱

      /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/ /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
  • 網址

    /^((https?|ftp|file):\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$/ /^(?:(?:https?|ftp):\\/\\/)?(?:[\\da-z.-]+)\\.(?:[a-z.]{2,6})(?:\\/\\w\\.-]*)*\\/?/
  • 文件擴展名

    function checkFileName (arr) {arr = arr.map(name => `.${name}`).join('|')return new RegExp(`(${arr})$`) }const filenameReg = checkFileName(['jpg', 'png', 'txt'])
  • IPv4

    /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
  • ip-v6

    /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i
  • 16進制顏色

    /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
  • 國內座機電話,如: 0341-86091234

    /\\d{3}-\\d{8}|\\d{4}-\\d{7}/
  • 護照(包含香港、澳門)

    /(^[EeKkGgDdSsPpHh]\\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\\d{7}$)/
  • 帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線組合

    /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/
  • 數字/貨幣金額(支持負數、千分位分隔符)

    /(?:^[-]?[1-9]\\d{0,2}(?:$|(?:,\\d{3})*(?:$|(\\.\\d{1,2}$))))|(?:(?:^[0](\\.\\d{1,2})?)|(?:^[-][0]\\.\\d{1,2}))$/
  • 數字/貨幣金額 (只支持正數、不支持校驗千分位分隔符)

    /(?:^[1-9]([0-9]+)?(?:\\.[0-9]{1,2})?$)|(?:^(?:0){1}$)|(?:^[0-9]\\.[0-9](?:[0-9])?$)/
  • 銀行卡號(10到30位, 覆蓋對公/私賬戶, 參考微信支付)

    /^[1-9]\\d{9,29}$/
  • 版本號格式必須為X.Y.Z

    /^\\d+(?:\\.\\d+){2}$/
  • 中文姓名

    /^(?:[\\u4e00-\\u9fa5·]{2,16})$/
  • 英文姓名

    /(^[a-zA-Z]{1}[a-zA-Z\\s]{0,20}[a-zA-Z]{1}$)/
  • 新能源車牌號

    /[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$/
  • 非新能源車牌號

    /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/
  • 車牌號(新能源+非新能源)

    /^(?:[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}(?:(?:[0-9]{5}[DF])|(?:[DF](?:[A-HJ-NP-Z0-9])[0-9]{4})))|(?:[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9 掛學警港澳]{1})$/
  • md5格式(32位)

    /^[a-f0-9]{32}$/
  • 迅雷鏈接

    /^thunder:\\/\\/[a-zA-Z0-9]+=$/
  • ed2k鏈接(寬松匹配)

    /^thunder:\\/\\/[a-zA-Z0-9]+=$/
  • 磁力鏈接(寬松匹配)

    /^magnet:\\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/
  • 子網掩碼

    /^(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])(?:\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])){3}$/
  • linux"文件夾”路徑

    /^\\/(\\w+\\/?)+$/
  • linux"文件”路徑

    /^\\/(\\w+\\/)+\\w+\\.\\w+$/
  • window下"文件夾”路徑

    /^[a-zA-Z]:\\\\(?:\\w+\\\\?)*$/
  • window下"文件”路徑

    /^[a-zA-Z]:\\\\(?:\\w+\\\\)*\\w+\\.\\w+$/
  • A股代碼

    /^(s[hz]|S[HZ])(000[\\d]{3}|002[\\d]{3}|300[\\d]{3}|600[\\d]{3}|60[\\d]{4})$/

總結

以上是生活随笔為你收集整理的JS Regex的全部內容,希望文章能夠幫你解決所遇到的問題。

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