佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > javascript正則表達(dá)式學(xué)習(xí)之位置匹配

javascript正則表達(dá)式學(xué)習(xí)之位置匹配

熱門標(biāo)簽:電子圍欄 服務(wù)器配置 科大訊飛語音識(shí)別系統(tǒng) Mysql連接數(shù)設(shè)置 銀行業(yè)務(wù) 阿里云 團(tuán)購網(wǎng)站 Linux服務(wù)器

一、前言

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

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

二、什么是位置

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

三、如何匹配位置

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

可視化形式:

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

3.1 ^和$

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

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

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

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

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

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]的簡寫,即使字母數(shù)字或者下劃線中任何一個(gè)字符。而\W是字符組[^0-9a-zA-Z]的簡寫,即\W是\w以外的任何一個(gè)字符。

我們?cè)賮砜?是怎么來的:

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

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

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

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

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

第 6 個(gè),位于結(jié)尾,前面的字符 "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

標(biāo)簽:廣元 蚌埠 大理 江蘇 萍鄉(xiāng) 衢州 棗莊 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《javascript正則表達(dá)式學(xué)習(xí)之位置匹配》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    瓦房店市| 桐梓县| 邢台县| 永修县| 盱眙县| 五莲县| 礼泉县| 马山县| 富锦市| 齐河县| 永嘉县| 改则县| 义马市| 金塔县| 咸丰县| 嘉峪关市| 富顺县| 定南县| 黄平县| 喀喇沁旗| 奇台县| 靖远县| 青冈县| 临城县| 红桥区| 宝丰县| 神木县| 通河县| 禹州市| 呼伦贝尔市| 西充县| 江津市| 大丰市| 尼木县| 于都县| 安龙县| 新密市| 连州市| 乌苏市| 和平区| 溧水县|