js 重學(xué)正則
js 重學(xué)正則
首先,討論貪婪模式與非貪婪模式。JS默認(rèn)采用貪婪模式,這意味著匹配盡可能多的字符。若需非貪婪模式,只需在模式后添加問號(如:`/pattern/`改為`/pattern/??`)。這種模式允許匹配盡可能少的字符。接下來,介紹括號在正則表達(dá)式中的作用。小括號`()`用于分組,中括號`[]`表示字符集,大括號`{}`用于指定字符出現(xiàn)次數(shù)。例如,`/([0-9])`匹配單個數(shù)字,`/\;d{2}/`匹配兩個連續(xù)的數(shù)字。在正則表達(dá)式中,`RegExp`對象的屬性如`$1-$9`可用于存儲子匹配。`RegExp.$1`獲取與正則表達(dá)式匹配的第一個子匹配字符串,以此類推,共有99個匹配可用。
導(dǎo)讀首先,討論貪婪模式與非貪婪模式。JS默認(rèn)采用貪婪模式,這意味著匹配盡可能多的字符。若需非貪婪模式,只需在模式后添加問號(如:`/pattern/`改為`/pattern/??`)。這種模式允許匹配盡可能少的字符。接下來,介紹括號在正則表達(dá)式中的作用。小括號`()`用于分組,中括號`[]`表示字符集,大括號`{}`用于指定字符出現(xiàn)次數(shù)。例如,`/([0-9])`匹配單個數(shù)字,`/\;d{2}/`匹配兩個連續(xù)的數(shù)字。在正則表達(dá)式中,`RegExp`對象的屬性如`$1-$9`可用于存儲子匹配。`RegExp.$1`獲取與正則表達(dá)式匹配的第一個子匹配字符串,以此類推,共有99個匹配可用。
![](https://img.51dongshi.com/20241128/wz/18319835952.jpg)
在JavaScript中,正則表達(dá)式是處理文本的強大工具,本文將詳細(xì)闡述幾個關(guān)鍵概念,幫助你更深入地掌握正則表達(dá)式的應(yīng)用。首先,討論貪婪模式與非貪婪模式。JS默認(rèn)采用貪婪模式,這意味著匹配盡可能多的字符。若需非貪婪模式,只需在模式后添加問號(如:`/pattern/`改為`/pattern/??`)。這種模式允許匹配盡可能少的字符。接下來,介紹括號在正則表達(dá)式中的作用。小括號`()`用于分組,中括號`[]`表示字符集,大括號`{}`用于指定字符出現(xiàn)次數(shù)。例如,`/([0-9])`匹配單個數(shù)字,`/\d{2}/`匹配兩個連續(xù)的數(shù)字。在正則表達(dá)式中,`RegExp`對象的屬性如`$1-$9`可用于存儲子匹配。`RegExp.$1`獲取與正則表達(dá)式匹配的第一個子匹配字符串,以此類推,共有99個匹配可用。匹配所有數(shù)字時,既可用字符集`[0-9]`,也可使用速記`\d`。`/[\d]+/`與`/\\d+/`等效,匹配任意數(shù)量的數(shù)字。使用大括號`{requiredCount}`可指定字符的精確數(shù)量。在表單校驗中,這類需求常見,例如`/email:/`確保輸入格式正確。正向與負(fù)向先行斷言是正則表達(dá)式中的高級特性。正向斷言`(?=...)`表示之后的字符串能匹配特定模式,而負(fù)向斷言`(?!...)`表示之后的字符串不能匹配特定模式,這兩者用于更精確的文本匹配。在處理特定字符時,如空格、回車換行符,正則表達(dá)式能有效處理。在HTML的`textarea`元素中輸入文本時,換行與空格可能被瀏覽器以特定方式解釋,使用正則表達(dá)式轉(zhuǎn)換這些字符可確保在頁面上正確顯示。在操作字符串時,如替換特定子字符串,正則表達(dá)式提供了便捷的解決方案。例如,將`{$id}{$name}{$id}`中的子字符串替換為指定值,正則表達(dá)式可以輕松實現(xiàn)這一功能。為了確保輸出安全,常常需要對特殊字符進(jìn)行轉(zhuǎn)義。編寫一個函數(shù)`escapeHtml`,將``, `&`, `"`等字符轉(zhuǎn)義,防止代碼注入攻擊。最后,討論正則表達(dá)式構(gòu)造函數(shù)`RegExp()`與正則表達(dá)字面量`//`的差異。使用`RegExp()`構(gòu)造函數(shù)時,需要額外的轉(zhuǎn)義(如`\\"`表示`"`),而正則表達(dá)字面量則更高效。總結(jié),正則表達(dá)式在JavaScript中具有廣泛的應(yīng)用,從文本匹配到安全輸出,掌握其核心概念將大大提升你的編程能力。
js 重學(xué)正則
首先,討論貪婪模式與非貪婪模式。JS默認(rèn)采用貪婪模式,這意味著匹配盡可能多的字符。若需非貪婪模式,只需在模式后添加問號(如:`/pattern/`改為`/pattern/??`)。這種模式允許匹配盡可能少的字符。接下來,介紹括號在正則表達(dá)式中的作用。小括號`()`用于分組,中括號`[]`表示字符集,大括號`{}`用于指定字符出現(xiàn)次數(shù)。例如,`/([0-9])`匹配單個數(shù)字,`/\;d{2}/`匹配兩個連續(xù)的數(shù)字。在正則表達(dá)式中,`RegExp`對象的屬性如`$1-$9`可用于存儲子匹配。`RegExp.$1`獲取與正則表達(dá)式匹配的第一個子匹配字符串,以此類推,共有99個匹配可用。
為你推薦