Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 精品国产中文字幕,www.亚洲精品.com,91久久国产露脸精品

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript之正則表達式教程

          則表達式在js中有很多用途,最常見的是在表單驗證中,驗證一些字符串是否符合要求,如email、手機號等等,學好正則對于前端工程師來說是一個不錯的輔助技能。

          圖片來自網絡

          一、特殊字符

          1、$

          正則的結尾符號

          2、^

          開始符號

          3、()

          標記一個子表達式的開始和結束位置

          4、[]

          匹配括號中任意一個; 例:

          結果就是true

          5、{}

          括號里是匹配幾個,一般用來限制位數;例:

          匹配位數是4~7位,7個a返回true,8個就false;

          有三種用法:

          {3}:表示匹配三位;

          {3,}:表示匹配三位及以上;

          {3,7}:表示匹配3到7位

          6、*

          表示匹配0次或多次;相當于{0,}

          7、?

          表示要匹配的是0或1位;

          8、+

          表示匹配前面的字符串一次或多次

          9、.

          匹配任意字符

          10、|

          “或”:不解釋

          11、\w

          字母、數字、下劃線

          12、\W

          非字母、數字、下劃線

          13、\d

          數字,等價于[0-9]

          14、\D

          非數字,等價于[^0-9]

          15、\s

          匹配空格

          二、js方法

          1、match方法:

          挑選相匹配的內容:例:

          結果是“1,2,3”

          2.test方法:

          返回一個布爾值,表示是否匹配

          上述結果是“true”

          3、replace方法:

          用于將匹配正則的字符串進行替換,例:

          前面//里面是被替換的內容,后面加的字符串是要替換的內容。

          例:var path=req.url.replace(/\/?(?:\?.*)?$/,'').toLowerCase();

          獲取“/”后邊的路徑。

          則表達式,一個十分古老而又強大的文本處理工具,僅僅用一段非常簡短的表達式語句,便能夠快速實現一個非常復雜的業務邏輯。熟練地掌握正則表達式的話,能夠使你的開發效率得到極大的提升。

          下面是一些常用的正則匹配:

          1 . 校驗密碼強度

          密碼的強度必須是包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間。

          ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

          2. 校驗中文

          字符串僅能是中文。

          ^[\一-\龥]{0,}$

          3. 由數字、26個英文字母或下劃線組成的字符串

          ^\w+$

          4. 校驗E-Mail 地址

          同密碼一樣,下面是E-mail地址合規性的正則檢查語句。

          [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

          5. 校驗身份證號碼

          下面是身份證號碼的正則校驗。15 或 18位。

          15位:

          ^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$

          18位:

          ^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$

          6. 校驗日期

          “yyyy-mm-dd“ 格式的日期校驗,已考慮平閏年。

          ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

          7. 校驗金額

          金額校驗,精確到2位小數。

          ^[0-9]+(.[0-9]{2})?$

          8. 校驗手機號

          下面是國內 13、15、18開頭的手機號正則表達式。(可根據目前國內收集號擴展前兩位開頭號碼)

          ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

          9. 判斷IE的版本

          IE目前還沒被完全取代,很多頁面還是需要做版本兼容,下面是IE版本檢查的表達式。

          ^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/[5-9]\.0).*$

          10. 校驗IP-v4地址

          IP4 正則語句。

          \b(?:(?: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]?)\b

          11. 校驗IP-v6地址

          IP6 正則語句。

          (([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

          12. 檢查URL的前綴

          應用開發中很多時候需要區分請求是HTTPS還是HTTP,通過下面的表達式可以取出一個url的前綴然后再邏輯判斷。

          if (!s.match(/^[a-zA-Z]+:\/\//)){ s = 'http://' + s;}

          13. 提取URL鏈接

          下面的這個表達式可以篩選出一段文本中的URL。

          ^(f|ht){1}(tp|tps):\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?

          14. 文件路徑及擴展名校驗

          驗證windows下文件路徑和擴展名(下面的例子中為.txt文件)

          ^([a-zA-Z]\:|\)\([^\]+\)*[^\/:*?"<>|]+\.txt(l)?$

          15. 提取Color Hex Codes

          有時需要抽取網頁中的顏色代碼,可以使用下面的表達式。

          ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

          16. 提取網頁圖片

          假若你想提取網頁中所有圖片信息,可以利用下面的表達式。

          \< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)

          17. 提取頁面超鏈接

          提取html中的超鏈接。

          (<a\s*(?!.*\brel=)[^>]*)(href="https?:\/\/)((?!(?:(?:www\.)?'.implode('|(?:www\.)?', $follow_list).'))[^"]+)"((?!.*\brel=)[^>]*)(?:[^>]*)>

          18. 查找CSS屬性

          通過下面的表達式,可以搜索到相匹配的CSS屬性。

          ^\s*[a-zA-Z\-]+\s*[:]{1}\s[a-zA-Z0-9\s.#]+[;]{1}

          19. 抽取注釋

          如果你需要移除HMTL中的注釋,可以使用如下的表達式。

          <!--(.*?)-->

          20. 匹配HTML標簽

          通過下面的表達式可以匹配出HTML中的標簽屬性。

          <\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[\^'">\s]+))?)+\s*|\s*)\/?>

          最后推薦一款正則表達式在線測試工具

          regex101是一個非常不錯的正則表達式在線測試工具,你可以直接在線測試你的正則表達式哦。

          在JavaScript中,正則表達式(Regular Expression,簡稱RegExp)是一種強大的文本處理工具,它提供了查找、替換和提取字符串中模式匹配項的強大功能。本文將帶領您深入理解JavaScript中的正則表達式,并通過實例演示其常見用法與高級特性。

          1. 創建正則表達式

          在JavaScript中創建一個正則表達式有兩種方式:

          • 字面量形式:
          let regex = /pattern/flags;

          例如,查找所有的數字:

          let numbersRegex = /\d+/;
          • 構造函數形式:
          let regex = new RegExp('pattern', 'flags');

          同樣的例子,使用構造函數形式:

          let numbersRegex = new RegExp("\d+", "");

          注意:在構造函數中寫入字符串時,需要對特殊字符進行轉義。

          2. 正則表達式模式

          正則表達式的主體部分是“模式”,用于描述要匹配的文本結構。以下是一些基本模式示例

          • \d 匹配任何數字(等同于 [0-9])
          • \w 匹配字母、數字或下劃線(等同于 [a-zA-Z0-9_])
          • \s 匹配任何空白字符(包括空格、制表符、換行符等)
          • . 匹配除換行符之外的任意單個字符
          • ^ 匹配字符串的開始位置
          • $ 匹配字符串的結束位置
          • * 表示前面的元素可以重復零次或多次
          • + 表示前面的元素至少重復一次
          • ? 表示前面的元素可選,出現零次或一次
          • {n} 表示前面的元素必須重復n次
          • {n,} 表示前面的元素至少重復n次
          • {n,m} 表示前面的元素重復次數在n到m之間

          3. 標志位

          標志位位于正則表達式末尾,用于改變匹配行為:

          • g 全局搜索,匹配字符串中的所有符合條件的位置,而不是只找到第一個就停止。
          • i 忽略大小寫。
          • m 多行模式,使^和$可以匹配每一行的開始和結束。

          4. 正則方法應用

          在JavaScript中,我們可以使用以下內置的方法來操作正則表達式:

          • test():檢測字符串是否符合某個正則表達式。
          let isNumber = /\d+/.test("123");
          console.log(isNumber); // true
          • match():在字符串上執行查找,返回匹配結果數組或者null。
          let matches = "Hello 123 World".match(/\d+/);
          console.log(matches[0]); // "123"
          • exec():在字符串上執行查找,返回包含匹配信息的對象或者null。
          let reg = /\d+/g;
          let matchResult = reg.exec("Hello 123 World");
          console.log(matchResult[0]); // "123"
          • search():返回字符串中第一個匹配項的索引,如果沒有找到則返回-1。
          let index = "Hello 123 World".search(/\d+/);
          console.log(index); // 6
          • replace():使用新的子串替換與正則表達式匹配的子串。
          let replacedStr = "Hello 123 World".replace(/\d+/, "456");
          console.log(replacedStr); // "Hello 456 World"
          • split():根據正則表達式分隔字符串,返回一個由分割后的子串組成的數組。
          let words = "Hello World, How are you?".split(/\s*,\s*/);
          console.log(words); // ["Hello World", "How are you?"]

          5. 高級技巧

          • 非捕獲組 (?:...):不捕獲括號內的內容,僅作分組之用。
          • 負向前瞻 (?=...) 負向后瞻 (?!...):用來斷言后面或前面的內容,但并不包含在匹配結果內。
          • 反向引用 \n:匹配第n個括號里的內容。
          let regex = /(hello)\s+(world)(?=\!)/;
          let str = "hello world!";
          let match = str.match(regex);
          console.log(match[1]); // "hello"
          console.log(match[2]); // "world"

          6.小結

          JavaScript中的正則表達式功能強大且靈活,熟練掌握這一工具能極大地提高開發效率,尤其是在數據清洗、驗證和搜索等場景。希望這篇指南能幫助你更好地理解和運用正則表達式,實際操作中還需結合具體需求進行調整和優化。


          主站蜘蛛池模板: 波多野结衣一区二区| 国产成人无码AV一区二区在线观看 | 国产精品一区在线观看你懂的| 一区二区三区四区精品视频| 一区二区三区www| 免费一区二区三区四区五区| 国产微拍精品一区二区| 亚洲一区欧洲一区| 国产精品综合AV一区二区国产馆| 无码一区二区三区| 无码人妻少妇色欲AV一区二区| 中文字幕久久久久一区| 精品日本一区二区三区在线观看| 亚洲av成人一区二区三区在线观看 | 国产精品综合一区二区| 国产成人综合一区精品| 亚洲码欧美码一区二区三区 | 中文乱码精品一区二区三区| 亚洲Aⅴ无码一区二区二三区软件| 男人免费视频一区二区在线观看 | 亚洲AV成人一区二区三区观看 | 国产一区视频在线| 无码人妻精品一区二区| 亚洲国产成人一区二区精品区| 亚洲国产精品乱码一区二区 | 日本一区二区免费看| 亚洲老妈激情一区二区三区| 久久99热狠狠色精品一区| 亚洲制服中文字幕第一区| 在线播放偷拍一区精品| 午夜一区二区免费视频| AV无码精品一区二区三区宅噜噜| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产无套精品一区二区| 日本在线不卡一区| 日本一区二区三区不卡视频 | 亚欧在线精品免费观看一区| 午夜性色一区二区三区免费不卡视频| 麻豆果冻传媒2021精品传媒一区下载| 免费看无码自慰一区二区| 亚洲AV无码一区二三区|