成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

隨手查閱的正則匹配筆記

Riddler / 632人閱讀

摘要:可視化查看正則表達(dá)式復(fù)雜版,很直觀,神器一枚可視化查看正則表達(dá)式簡(jiǎn)化版

常見(jiàn)需求如下:

如果你只需要獲取字符串中的首個(gè)匹配項(xiàng)

var re = /quicks(brown).+?(jumps)/ig;
var result = re.exec("The Quick Brown Fox Jumps Over The Lazy Dog");
// 就算有 g 標(biāo)識(shí),通過(guò) exec 也只能獲取到首個(gè)匹配項(xiàng)
// result[0]: Quick Brown Fox Jumps

使用了 g 標(biāo)識(shí)時(shí)(不使用時(shí)以下方法也適用),如果你想獲取正則中的組匹配(capture groups)信息

var re = /quicks(brown).+?(jumps)/ig;
var result = re.exec("The Quick Brown Fox Jumps Over The Lazy Dog");
// index 1~n 就是組匹配到的結(jié)果(此處正則中有兩個(gè)括號(hào),則 n 為 2)
// result[1]: Brown
// result[2]: Jumps

關(guān)于 exec 的更多詳細(xì)說(shuō)明可以查看 MDN 文檔 RegExp.prototype.exec()

不使用 g 標(biāo)識(shí)時(shí),如果你想獲取正則中的組匹配(capture groups)信息

"mockid=272;其他說(shuō)明文字……".match(/mockid=(d+);/i)
// ["mockid=272;", "272", index: 0, input: "mockid=272;其他說(shuō)明文字……"]
// 如果加上 g 標(biāo)識(shí),就只能得到 ["mockid=272;"]

匹配多種可能出現(xiàn)的值,獲取最終匹配到的值

"GET/path/to/some/place".match(/^(GET|POST|PUT|DELETE)/gi)
// 輸出:["GET"]

關(guān)于 match 的更多詳細(xì)說(shuō)明可以查看 MDN 文檔 String.prototype.match()

只想知道是否匹配某個(gè)正則(true or false)

// RegExp.prototype.test()
var str = "hello world!";
var result = /^hello/.test(str);
console.log(result); // true

關(guān)于 test 的更多詳細(xì)說(shuō)明可以查看 MDN 文檔 RegExp.prototype.test()

// String.prototype.search()
var str = "hey JudE";
var re = /[A-Z]/g;
var re2 = /[.]/g;
console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J"
console.log(str.search(re2)); // returns -1 cannot find "." dot punctuation
// 因此可以直接判斷返回負(fù)值時(shí)匹配結(jié)果為 false

關(guān)于 search 的更多詳細(xì)說(shuō)明可以查看 MDN 文檔 String.prototype.search()

對(duì)匹配成功的字符串進(jìn)行處理

function replacer(match, p1, p2, p3, offset, string) {
  // p1:([^d]*) p2:(d*) p3:([^w]*)
  // p1 非數(shù)字, p2 數(shù)字, p3 非文字
  return [p1, p2, p3].join(" - ");
}
var newString = "abc12345#$*%".replace(/([^d]*)(d*)([^w]*)/, replacer);
console.log(newString);  // abc - 12345 - #$*%
推薦正則工具:

RegExr

非常好用的一個(gè)正則編寫(xiě)工具,我會(huì)點(diǎn)開(kāi)左側(cè)菜單欄里的 cheatsheet 來(lái)學(xué)習(xí)編寫(xiě)符合我需求的正則表達(dá)式。

Debuggex

可視化查看正則表達(dá)式(復(fù)雜版),很直觀,神器一枚

Regexper

可視化查看正則表達(dá)式(簡(jiǎn)化版)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93214.html

相關(guān)文章

  • 關(guān)于正則表達(dá)式一些筆記整理

    摘要:于是對(duì)應(yīng)著,對(duì)應(yīng)著輸出月日年九前瞻正則表達(dá)式從文本頭部想穩(wěn)步開(kāi)始解析,文本尾部方向,稱為前。只是條件不參與匹配找英文數(shù)字下劃線而且后面跟著數(shù)字的。 基礎(chǔ)知識(shí) 一 元字符  單詞邊界 d 數(shù)字 [0-9] w 英文 數(shù)字 下劃線 [a-z0-9_] s 空白字符[ v f] 水平制表符,v垂直制表符, 換行符, 回車(chē)符,f換頁(yè)符 反義 B 非單詞邊界 D [^0-9] W [^...

    fancyLuo 評(píng)論0 收藏0
  • 關(guān)于正則表達(dá)式一些筆記整理

    摘要:于是對(duì)應(yīng)著,對(duì)應(yīng)著輸出月日年九前瞻正則表達(dá)式從文本頭部想穩(wěn)步開(kāi)始解析,文本尾部方向,稱為前。只是條件不參與匹配找英文數(shù)字下劃線而且后面跟著數(shù)字的。 基礎(chǔ)知識(shí) 一 元字符  單詞邊界 d 數(shù)字 [0-9] w 英文 數(shù)字 下劃線 [a-z0-9_] s 空白字符[ v f] 水平制表符,v垂直制表符, 換行符, 回車(chē)符,f換頁(yè)符 反義 B 非單詞邊界 D [^0-9] W [^...

    dailybird 評(píng)論0 收藏0
  • 正則表達(dá)式

    摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書(shū)問(wèn)世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計(jì)語(yǔ)言里和所有的計(jì)算機(jī)平臺(tái)上使用的文字處理工具。它可以用來(lái)查找特定的信息(搜索),也可以用來(lái)查...

    bang590 評(píng)論0 收藏0
  • 正則表達(dá)式

    摘要:最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。學(xué)習(xí)目標(biāo)了解正則表達(dá)式語(yǔ)法在中使用正則表達(dá)式在中使 JS高級(jí)技巧 本篇是看的《JS高級(jí)程序設(shè)計(jì)》第23章《高級(jí)技巧》做的讀書(shū)分享。本篇按照書(shū)里的思路根據(jù)自己的理解和經(jīng)驗(yàn),進(jìn)行擴(kuò)展延伸,同時(shí)指出書(shū)里的一些問(wèn)題。將會(huì)討論安全的類(lèi)型檢測(cè)、惰性載入函數(shù)、凍結(jié)對(duì)象、定時(shí)器等話題。1. 安全的類(lèi)型檢測(cè)...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<