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

歡迎訪問 生活随笔!

生活随笔

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

javascript

JavaScript正则表达式-基础入门

發布時間:2023/12/20 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript正则表达式-基础入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaScript正則表達式-基礎入門

  • 字符類,如 /w/ 為匹配任何ASCII字符組成的字符

  • 重復, 如 /w{1,3}/ 為匹配一到三個單詞

  • 選擇、分組和引用

  • 指定匹配位置

  • 修飾符

  • 直接量字符

  • 可用于模式匹配的String方法

  • RegExp對象


基本要素

字符類

[...]方括號內的任意字符
1不在方括號內的任意字符
.除換行符和其他Unicode行終止符之外的任意字符
\w任何ASCII字符組成的單詞,等價于[a-zA-Z0-9]
\W任何不適ASCII字符組成的單詞,等價于2
\s任何Unicode空白符
\S任何非Unicode空白符的字符,注意w和S不同
\d任何ASCII數字,等價于[0-9]
\D除了ASCII數字之外的任何字符,等價于3
[\b]退格直接量(特例)
// 匹配字符串中的 'b'"abc".search( /[b]/ ) // 1// 匹配字符串中的 方括號內規定的數字"abc123abc".search( /[2-5]/ ) // 4

重復

{n,m}匹配前一項至少n次,但不能超過m次
{n, }匹配前一項n次或者更多次
{n}匹配前一項n次
?盡可能多地匹配前一項0或者1次
+盡可能多地匹配前一項1次或多次
*盡可能多地匹配前一項0或多次
{n,m}?盡可能少地匹配前一項至少n次,但不能超過m次
??盡可能少地匹配前一項0或者1次
+?盡可能少地匹配前一項1次或多次
*?盡可能少地匹配前一項0或多次
// 匹配2~4個數字,{n,m}中的逗號兩邊不能有空格"a1ab12abc123".search( /\d{2,4}/ ) // 4// 精確匹配三個字母和一個可選的數字"at12a3abcd1abc123".search( /[a-zA-Z]{3}\d?/ ) // 6// 匹配前后帶有一個或多個空格的字符串"JavaScript""JavaScripttttt is notJavaScript( JavaScript )".search( /\s+JavaScript\s+/ ); // 32// 盡可能多"aaa".match( /a+/ ); // ['aaa']// 盡可能少"aaa".match( /a+?/ ); // ['a']

選擇

字符 '|' 用于提供可選擇的字符
注意兩點:

1. 匹配次序 從左到右 2. 如果左邊的選擇匹配成功,就忽略右邊的匹配項 // 匹配三個數字或者是4個小寫字母"1ab12ab123abcd".match( /\d{3}|[a-z]{4}/ ) // ["123"]

分組和引用

(...)有三個作用:

1. 把單獨的項組合成子表達式 2. 在完成的模式中定義子模式 3. 允許在同一正則表達式的后部引用前面的子表達式 , 使用\1代表第一個左括號的內容,\2代表第二個左括號的內容,依次類推 // 1.匹配字符串"Java",其后的"Script"可有可無"JavaSScript".match( /Java(Script)?/ ) // ["Java", undefined]// 2.匹配左右為字母中間為數字的字符串,同時取出中間的字符串"123abc454cba321".match( /[a-z]+(\d+)[a-z]+/ ) // ["abc454cba", "454"]// 3.允許在同一正則表達式的后面引用前面的子表達式"\"Java\'S\'cript\"".match( /['"][^'"]*['"]/ ); // [""Java'"] 引號左右不匹配"\"Java\'S\'cript\"".match( /(['"])[^'"]*\1/ ); // ["'S'", "'"] 引號左右匹配
(...)將幾個項組合為一個單元,這個單元可通過"*"、"+"、"?"和"|"等符號加以修飾
(?:...)只組合,把項目組合到一個單元,但不記憶與該組相匹配的字符
n和第n個分組第一次匹配的字符相匹配,組是圓括號中的子表達式,組索引是從左到右的左括號數

指定匹配位置

^匹配字符串的開頭,在多行檢索中,匹配一行的開頭
$匹配字符串的借位,在多行檢索中,匹配一行的結尾
b匹配一個單詞的邊界(區分[b]匹配的是退格符)
B匹配非單詞邊界的位置
(?=p)零寬正向先行斷言,要求接下來的字符都與p匹配,但不能包括匹配p的那些字符
(?!p)零寬負向先行斷言,要求接下來的字符不與p匹配

b、^ 和 $ 稱為正則表達式的錨,定位搜索字符串的特定位置

// 匹配單詞的邊界,即位于\w字符和\W之間的邊界"htmlhtml html".search( /html/ ) // 0"htmlhtml html".search( /html\b/ ) // 4// 匹配一個單詞" JavaScript".match( /^JavaScript$/ ) // null"JavaScript".match( /^JavaScript$/ ) // ["JavaScript"]

(?=p)和(?!p)指定接下來的字符是否與p匹配

// 第二個不能匹配是因為Java后面不是空格符"JavaScript is good.".match( /[Jj]ava(Script)?(?=\s)/ ) // ["JavaScript", "Script"]"Javais good.".match( /[Jj]ava(Script)?(?=\s)/ ) // null

修飾符

i執行不區分大小寫的匹配
g執行一個全局匹配
m多行匹配模式,^匹配一行的開頭和字符串的開頭,$匹配行的結束和字符串的結束

修飾符用在“/”符號之后

// i 即為igonre case"JAVASCRIPT".match( /javascript/ ) // null"JAVASCRIPT".match( /javascript/i ) // ["JAVASCRIPT"]// g 即為global"JavaScript Java".match( /Java/ ) // ["Java"]"JavaScript Java".match( /Java/g ) // ["Java", "Java"]// m 即為multiline"JavaScript\nJava".match( /^Java$/ ) // null"JavaScript\nJava".match( /^Java$/m ) // ["Java"]

直接量符號

\oNUL字符(u0000)
\t制表符(u0009)
\n換行符(u00A)
\v垂直制表符(u000B)
\f換頁符(u000C)
\r回車符(u000D)
\xnn由16進制數nn指定的拉丁字符
\uxxxx由16進制數xxxx指定的Unicode字符
\cX控制字符

可用于模式匹配的String方法

// search(),返回與之匹配子串的起始位置"JavaScript".search( /script/i ); // 4// match() , 返回由匹配結果組成的數組"Java is not JavaScript".match( /java(script)?/gi ) // ["Java", "JavaScript"]// replace(), 檢索和替換"java is not JavaScript".replace( /java/i , "C++" ).replace( /javascript/i , "C") // "C++ is not C"// split() , 將字符串拆分為一個子串組成的數組" 1 , 2, 3 ,4 , 5 ".trim().split( /\s*,\s*/ ) // ["1", "2", "3", "4", "5"]

RegExp對象

RegExp()為一個構造函數

// 第一個參數為 正則表達式的主體部分,第二個參數為 修飾符let reg = new RegExp( "java(script)?" , "gi" );"Java is not JavaScript".match( reg ) // ["Java", "JavaScript"]

小結

此文章是參照了《JavaScript: The Definitive Guide》中的第十章,想仔細了解JavaScript的正則表達式可以去翻閱此書籍。

解析一個URL使用/(\w+):\/\/([\w.]+)\/(\S*)/

"Welcome to https://segmentfault.com/t/javascript".match( /(\w+):\/\/([\w.]+)\/(\S*)/ ) // ["https://segmentfault.com/t/javascript", "https", "segmentfault.com", "t/javascript"]
  • ... ?
  • a-zA-Z0-9 ?
  • 0-9 ?
  • 總結

    以上是生活随笔為你收集整理的JavaScript正则表达式-基础入门的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 日本黄色三级视频 | 九九热在线播放 | www.欧美.com | 特级特黄aaaa免费看 | 激情文学欧美 | 91成人在线免费 | 日本在线第一页 | 欧美色xxxxx 日本精品一区二区三区四区的功能 | 国产床上视频 | 最近2018年手机中文字幕版 | av无码精品一区二区三区宅噜噜 | 一区二区三区精品在线观看 | 爱逼av | 日韩欧美电影一区二区三区 | 国产一区不卡在线 | 住在隔壁的她动漫免费观看全集下载 | 国产 日韩 欧美 精品 | 在线精品福利 | 搡老熟女老女人一区二区 | 色噜噜狠狠一区二区三区果冻 | 国产一区二区精品在线观看 | 午夜中文字幕 | 丝袜制服一区 | 一级α片免费看刺激高潮视频 | 五月天视频| 91视频这里只有精品 | 中文字幕亚洲乱码熟女一区二区 | 李华月全部毛片 | 日本美女在线 | 久久免费视频网 | 免费在线观看视频 | 中文字幕在线播放一区二区 | 国产男女无套免费网站 | 男人喷出精子视频 | 三级黄片毛片 | 99免费看 | 国产一区二区黄 | 亚洲综合在线成人 | 国产精品揄拍100视频 | 久操亚洲 | 亚洲综合日韩精品欧美综合区 | 韩国毛片基地 | 国产精品福利片 | 日韩亚洲国产欧美 | 男女草比视频 | 91日本在线| 中国老太婆性视频 | 国产精品你懂的 | 自拍偷拍精品视频 | 翔田千里88av中文字幕 | 亚洲av永久无码国产精品久久 | 天天干天天操天天射 | 亚洲视频在线视频 | 国产视频在线免费观看 | 日本成人精品视频 | 国产成人综合欧美精品久久 | 成人在线a | 一级黄色片毛片 | 在线岛国 | 99热这里只有精 | 国产高清视频一区 | 最新国产露脸在线观看 | 欧美在线播放一区二区 | 91九色网站 | 四虎影视网 | 国产麻豆剧果冻传媒白晶晶 | 亚洲AV无码精品自拍 | 人妻无码久久一区二区三区免费 | 九九视频在线免费观看 | 成人女同av免费观看 | 污网站免费在线 | 国产又黄又粗 | 色视频在线观看 | 黄色在线一区 | 久久9966| 亚洲免费av片 | 涩涩网站在线观看 | 处女朱莉第一次 | 天堂一二三区 | 亚洲国产一二三区 | www日韩精品 | 国产一区亚洲二区 | 老司机午夜剧场 | 诱惑の诱惑筱田优在线播放 | 亚洲专区在线 | 亚洲色图另类小说 | 婷婷久久网| 偷偷操不一样 | 91免费视频黄 | 亚洲国产私拍精品国模在线观看 | 人操人| 国产精品伦一区二区三级视频 | 深夜在线网站 | 狠狠插狠狠操 | 交专区videossex非洲 | 日本免费观看视频 | 亚洲色图图片 | 影音先锋男人资源网站 | 国产精品久久久免费观看 |