校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > javascript正則表達式學習之位置匹配

javascript正則表達式學習之位置匹配

熱門標簽:甘肅醫療外呼系統排名 貴港公司如何申請400電話 外呼系統無呼出路由是什么原因 呼叫系統外呼只能兩次 地圖標注教學點 ai電話機器人搭建 400電話辦理電話辦理 西藏智能外呼系統代理商 梅縣地圖標注

一、前言

正則表達式是匹配模式,要么是匹配字符,要么匹配位置。

其實在開發中很少用到匹配位置,本篇文章主要包含:

二、什么是位置

位置:相鄰字符之間的位置。

三、如何匹配位置

在ES5中,共有6個錨:^, $, \b, \B, (?=p), (?!p)

可視化形式:

RegExp:/^$\b\B(?=a)(?!b)/g

3.1 ^和$

^(脫字符)匹配開頭,在多行匹配中匹配行開頭。

$(美元符)匹配結尾,在多行匹配中匹配行結尾。

比如:我們把字符串的開頭和結尾用#替換(位置可以替換成字符的):

var result = "hello".replace(/^|$/g, '#');
console.log(result);
// "#hello#"

多行匹配模式(有修飾符m)時,二者是行的概念,我們需要注意:

var result = "I\nlove\njavascript".replace(/^|$/gm, '#');
console.log(result);
// #I#// #love#// #javascript#

3.2 \b和\B

\b是單詞邊界,具體就是\w和\W之間的位置,也包括\w與^之間的位置,和\w和$之間的位置。

比如考察文件名"[JS] Lesson_01.mp4"中的\b,如下:

var result = "[JS] Lesson_01.mp4".replace(/\b/g, '#');
console.log(result);
// "[#JS#] #Lesson_01#.#mp4#"

首先,我們知道\w是字符組[0-9a-zA-Z]的簡寫,即使字母數字或者下劃線中任何一個字符。而\W是字符組[^0-9a-zA-Z]的簡寫,即\W是\w以外的任何一個字符。

我們再來看#是怎么來的:

第 1 個,兩邊字符是 "[" 與 "J",是 \W 與 \w 之間的位置。

第 2 個,兩邊字符是 "S" 與 "]",也就是 \w 與 \W 之間的位置。

第 3 個,兩邊字符是空格與 "L",也就是 \W 與 \w 之間的位置。

第 4 個,兩邊字符是 "1" 與 ".",也就是 \w 與 \W 之間的位置。

第 5 個,兩邊字符是 "." 與 "m",也就是 \W 與 \w之間的位置。

第 6 個,位于結尾,前面的字符 "4" 是 \w,即 \w 與 $ 之間的位置。

知道了\b概念后,那\B就好理解了,\b是單詞邊界,\B是非單詞邊界

var result = "[JS] Lesson_01.mp4".replace(/\B/g, '#');
console.log(result);
// "#[J#S]# L#e#s#s#o#n#_#0#1.m

標簽:哈密 泰安 涼山 海口 本溪 湖州 大興安嶺 常州

巨人網絡通訊聲明:本文標題《javascript正則表達式學習之位置匹配》,本文關鍵詞  javascript,正則,表達式,學,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《javascript正則表達式學習之位置匹配》相關的同類信息!
  • 本頁收集關于javascript正則表達式學習之位置匹配的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 凤台县| 穆棱市| 山西省| 雅安市| 千阳县| 安乡县| 普兰县| 丰原市| 常宁市| 宜丰县| 遂昌县| 桂东县| 永丰县| 乌拉特前旗| 时尚| 平罗县| 原阳县| 松江区| 察雅县| 鸡泽县| 邵阳县| 唐海县| 沈阳市| 开封县| 明光市| 定西市| 天镇县| 钟山县| 广饶县| 吕梁市| 静安区| 许昌市| 逊克县| 镇宁| 隆昌县| 永康市| 同心县| 泽库县| 徐汇区| 南昌市| 靖安县|