成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JS正則表達(dá)式學(xué)習(xí)筆記2

Ajian / 2250人閱讀

摘要:第二階段該部分內(nèi)容是學(xué)習(xí)正則的第二篇內(nèi)容,點(diǎn)擊第一部分查看第一部分的內(nèi)容。

第二階段

該部分內(nèi)容是學(xué)習(xí)正則的第二篇內(nèi)容,點(diǎn)擊第一部分查看第一部分的內(nèi)容。

這部分學(xué)習(xí)的內(nèi)容包括:

分組

斷言

匹配模式(貪婪和懶惰)

分組

我們可以通過(guò)量詞匹配一個(gè)字符多次,但是如果我們想要匹配多個(gè)字符多次,就需要用到分組,比如下面一個(gè)例子

// 匹配字母和數(shù)字連續(xù)出現(xiàn)三次的字符
let str = "a1b2c3d4";
let reg = /([a-z]d){3}/

str.replace(reg,"x");

// 通過(guò)分組重新排列字符
let str = "2019-09-10";
let reg = /^(d{4})-(d{2})-(d{2})/
str.replace(reg,"$2/$3/$1")
// result "09/10/2019"

// 匹配IP v4 的地址
let reg = /^((2[0-4]d|25[0-5]|[0-1]?dd?).){3}2[0-4]d|25[0-5]|[0-1]?dd?/;
// IP地址的格式是xxx.xxx.xxx.xxx 3個(gè)數(shù)字一個(gè)點(diǎn)的四位字符,匹配3次,加上三位字符,組合就是ip地址
// 我們通過(guò)分組,把分組內(nèi)容匹配三次

// 可以在正則中通過(guò)反向引用匹配分組的內(nèi)容
let reg = /(w{3}) is 1/;  

reg.test("kid is kid") // true
reg.test("dik is dik") // true
reg.test("kid is dik") // false
reg.test("dik is kid") // false

//1 反向引用的內(nèi)容和分組內(nèi)容是一樣的

特點(diǎn)

用()括起來(lái)的匹配正則

1 表示反向引用,引用第一個(gè)子表達(dá)式的內(nèi)容

2 表示反向引用,引用第二個(gè)子表達(dá)式的內(nèi)容

$0 匹配整個(gè)字符串

$1 匹配到的第一個(gè)分組的內(nèi)容

$2 匹配到的第二個(gè)分組的內(nèi)容

斷言

斷言有點(diǎn)像^ $ b那樣用于指定一個(gè)位置,這個(gè)位置應(yīng)該滿足一定的條件(即斷言)。通常使用斷言用來(lái)查找某些內(nèi)容之前或之后的東西(不包括他們本身);

代碼 說(shuō)明
?=exp 匹配exp前面的位置
?<=exp 匹配exp后面的位置
?!exp 匹配后面跟的不是exp的位置
? 匹配前面不是exp的位置

DEMO

// ?=exp
let reg = /w+(?=ing)/
let str = I"m singing while you"re dancing.
// 匹配以ing結(jié)尾單詞的前面部分

// ?<=exp
let reg = /(?<=re)w+/; 
// 匹配re開(kāi)頭單詞的后半部分
let str = reading a book;
匹配模式

貪婪模式

懶惰模式

當(dāng)正則表達(dá)式中包含能接受重復(fù)的限定詞時(shí),通常的行為是匹配盡可能多的字符。比如以下:

let reg = /a*b/;
let str = "aabab";
let result = str.replace(reg,"X");
// 以上str字符串會(huì)被全部替換為一個(gè)字符X。這被稱為貪婪匹配模式
// result = "X";

但有時(shí)候,我們希望匹配盡可能少的字符。只需要在量詞限定符的后面再加上一個(gè)問(wèn)號(hào)?就行。

let reg = /a*?b/;
let str = "aabab";
let result = str.replace(reg,"X");
// 以上str字符串會(huì)被全部替換為一個(gè)字符X。這被稱為貪婪匹配模式
// result = "Xab";
代碼 說(shuō)明
*? row 1 col 2
+? row 2 col 2
?? row 2 col 2
{n,m}? row 2 col 2
+? row 2 col 2
+? row 2 col 2

多思考,多練習(xí),然后校驗(yàn)結(jié)果,反復(fù)這個(gè)過(guò)程,在這個(gè)過(guò)程當(dāng)中就會(huì)一點(diǎn)一點(diǎn)的進(jìn)步的。

練習(xí)題

首先下載一個(gè)正則表達(dá)式測(cè)試工具:地址

我們的練習(xí)都可以使用這個(gè)工具來(lái)進(jìn)行測(cè)試;

匹配正確的電話

匹配正確的郵件

匹配IP地址(IPV4)

匹配URL

匹配身份證號(hào)碼(身份證有18位,最后一位可以是字符X)

匹配整數(shù)

匹配小數(shù)

匹配中文

匹配xxxx-xx-xx格式的日期(或者xxxx/xx/xx)

去掉http協(xié)議的jpg文件的協(xié)議頭

var imgs = [
      "http://img.host.com/images/fds.jpg",
    "https://img.host.com/images/fjlj.jpg",
    "http://img.host.com/images/djalsdf.png",
    "https://img.host.com/images/adsjfl.png",
    "http://img.host.com/image/jasdlf.jpg"
];

獲取 url 中的參數(shù)

const _url = "http://img.host.com/images/fds.jpg?name=mmcai&age=28"

字符串中小寫(xiě)數(shù)值替換為大寫(xiě)

//給定字符串
const str = "958317640";
//期望結(jié)果
const newStr = "九五八三一七六四零"

把數(shù)字用科學(xué)計(jì)數(shù)法表達(dá)10000000000 變?yōu)?0.000.000.000

給一個(gè)連字符串例如:get-element-by-id轉(zhuǎn)化成駝峰形式

分割數(shù)字每三個(gè)以一個(gè)逗號(hào)劃分

匹配固定電話000-12345678

匹配以下字符串當(dāng)中的數(shù)值字符,并輸出數(shù)組

//原字符串
const str = "d3gfhf72gh254bhku289fgdhdy675gfh"

// 期望得到的結(jié)果
const result = [3,72,254,289,675];

校驗(yàn)密碼——只能輸入6-20位字母、數(shù)字、下劃線

匹配漢字

練習(xí)答案晚點(diǎn)給出,大家寫(xiě)完也可以百度查找哈,但結(jié)果不一定唯一,可以有好幾種寫(xiě)法的,只要通過(guò)正則校驗(yàn)工具校驗(yàn)通過(guò)達(dá)到結(jié)果就可以哦~。

參考資料:

http://deerchao.net/tutorials...

https://www.imooc.com/video/1...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/105776.html

相關(guān)文章

  • js正則達(dá)式學(xué)習(xí)筆記

    摘要:說(shuō)來(lái)慚愧,做前端快三年對(duì)于正則表達(dá)式的應(yīng)用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語(yǔ)法和規(guī)則,這次項(xiàng)目中多次用到了需要匹配替換的動(dòng)作,終于下定決心去研究一下了。 說(shuō)來(lái)慚愧,做前端快三年對(duì)于正則表達(dá)式的應(yīng)用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語(yǔ)法和規(guī)則,這次項(xiàng)目中多次用到了需要匹配替換的動(dòng)作,終于下定決心去研究一下了。 實(shí)例化正則對(duì)...

    Towers 評(píng)論0 收藏0
  • js正則達(dá)式學(xué)習(xí)筆記

    摘要:分組小括號(hào)功能較多有三種功能,作用一,把單獨(dú)的項(xiàng)組合成子表達(dá)式。作用三,允許后面引用前面的表達(dá)式。如果這時(shí)的正則表達(dá)式是一個(gè)非全局的,那么和正則表達(dá)式方法拿到的結(jié)果相同。,也可以接受一個(gè)正則表達(dá)式作為參數(shù)。 正則表達(dá)式創(chuàng)建字面量創(chuàng)建,a = /abc/gim;構(gòu)造函數(shù)創(chuàng)建,a = new RegExp(abc,gim)正則表達(dá)式中的特殊字符,[...] 方括號(hào)中的任意字符[^...] ...

    superPershing 評(píng)論0 收藏0
  • JS正則達(dá)式學(xué)習(xí)筆記1

    摘要:正則表達(dá)式作為前端學(xué)習(xí)的一個(gè)知識(shí)點(diǎn),是每個(gè)合格的前端開(kāi)發(fā)都應(yīng)該掌握它的用法。元字符一般情況下,正則表達(dá)式的一個(gè)字符對(duì)應(yīng)字符串的一個(gè)字符。 正則表達(dá)式作為前端學(xué)習(xí)的一個(gè)知識(shí)點(diǎn),是每個(gè)合格的前端開(kāi)發(fā)都應(yīng)該掌握它的用法。正則表達(dá)式的學(xué)習(xí)確實(shí)不難,語(yǔ)法和應(yīng)用也非常簡(jiǎn)單,能夠快速入門(mén),很輕松的就能寫(xiě)出簡(jiǎn)單的表達(dá)式來(lái)對(duì)字符串執(zhí)行某些操作。網(wǎng)上也有標(biāo)題黨說(shuō)一杯咖啡的時(shí)間就能學(xué)會(huì)。能學(xué)會(huì)嗎?能!但要真...

    wangdai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<