中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

使用JavaScript進(jìn)行反向查詢

發(fā)布于:2021-01-15 13:33:37

0

486

0

JavaScript 反向查詢 正則表達(dá)式

我一直喜歡探索正則表達(dá)式,因?yàn)樗鼈兪悄切W(xué)校里從未教過(guò)的技能之一——您需要隨時(shí)掌握它們,在此過(guò)程中搞混并修正它們。Regex的功能非常強(qiáng)大,它們具有的一個(gè)功能被稱為反向引用,它實(shí)際上允許您在同一個(gè)正則表達(dá)式中使用匹配。

解釋反向引用的最簡(jiǎn)單方法是有一個(gè)簡(jiǎn)單的目標(biāo):使用regex來(lái)模擬解構(gòu)。請(qǐng)看下面的代碼片段:

const body = document.blah.body;

有了一個(gè)很棒的新語(yǔ)言特性,比如JavaScript解構(gòu),寫(xiě)上面的代碼更好的方法是:

const { body } = document.blah;

注意:作為一個(gè)通用的編程規(guī)則,使用正則表達(dá)式來(lái)實(shí)現(xiàn)或模擬語(yǔ)言特性是一個(gè)非常糟糕的想法。然而,為了解釋向后引用,它是完美的。

反向引用語(yǔ)法是{number of match}:

const code = "const body = document.blah.body;"; const destrcutured = code.replace(/const (w+) = ([A-z.]+).1;/, "const { $1 } = $2;"); // const { body } = document.blah";

在上面的例子中,我們使用1來(lái)引用同一個(gè)表達(dá)式中的第一個(gè)匹配項(xiàng)。然后使用$1來(lái)反映匹配的(w+),使用$2來(lái)反映對(duì)象鏈(([A-z.]+))。你可以使用{#}語(yǔ)法使用任意數(shù)量的后向引用。要知道反向引用是對(duì)性能的征稅:一些實(shí)用程序,如VS Code不支持它們;Atom editor確實(shí)支持反向引用。

正則表達(dá)式總是一種冒險(xiǎn),總是有更多的東西需要學(xué)習(xí)。正則表達(dá)式中我最喜歡的部分是單個(gè)字符如何極大地改變結(jié)果——在少量代碼中如此強(qiáng)大!