婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 談談正則表達式中的句號.

談談正則表達式中的句號.

熱門標簽:外呼系統(tǒng)無呼出路由是什么原因 西藏智能外呼系統(tǒng)代理商 400電話辦理電話辦理 地圖標注教學點 甘肅醫(yī)療外呼系統(tǒng)排名 呼叫系統(tǒng)外呼只能兩次 梅縣地圖標注 貴港公司如何申請400電話 ai電話機器人搭建

我們知道,正則表達式中,可以用 . 表示任意單個字符,但在underscore和jquery的源代碼中,我們可以看到,這些著名類庫的代碼中,經(jīng)常并不是用 . 來表示任意字符,而是使用 [\w\W] 或者[\s\S] 。乍一看,好像表達的含義是一樣的,可是為什么放著簡單的方法不用,而去多繞個圈子?今天就簡單說說這個問題。

首先我們必須要正確理解 . 的含義。其實說它表示任意單個字符,可能會讓人產(chǎn)生誤解,必須要強調(diào)一下,這個“任意單個字符”不包括控制換行的字符,也就是不包含 \n \r \u2028 或\u2029 這幾個字符。而 \W 和 \s 中是能夠包含這些字符的。那個這兩種寫法的差異也就很清晰了,就是能否匹配到幾個換行控制符的差異。

那么在什么時候我們需要考慮這幾個換行控制符呢?當要處理的字符串可能包含換行時。這樣的情景太多了,處理html字符串、處理template、nodejs讀取文本等等。

提及多行文本的場景,我們很容易想到正則表達式的 m 模式(多行模式)。那么多行模式對我們今天討論的問題有影響嗎?我不是很確定。為什么不確定呢?有些人信誓旦旦地聲稱單行模式下 . 的含義與多行模式下不同,單選模式下等同于 [\w\W] 或者 [\s\S] ,而多行模式下會排除換行控制符。但據(jù)我試驗,以及參考MDN的說法,這是不對的。的確有很多語言的正則表達式會有上述特性,但在javascript中我沒有看到,不知道會不會有瀏覽器方面的差異。那么多行模式對于javascript而言影響的是什么呢?我認為僅僅是改變了 ^ 和 $ 標識的含義:單行模式下,分別表示整個字符串的開始的結(jié)尾;多行模式下表示每一行的開始和結(jié)尾。而不管多行模式還是單行模式,我認為 . 都是不包含換行控制字符的,等價于 [^\n\r\u2028\u2029] 。

再多延伸一點點,對于現(xiàn)代瀏覽器,可以直接用 [^] 來匹配任意字符的。

例子程序不想寫了,有興趣的可以自己試驗一下,分別用 /.*/g 、 /^.*$/g 、 /.*/gm 、/^.*$/gm 來匹配一下 "abc\nedf" ,其中道理不言自明。

標簽:哈密 本溪 大興安嶺 湖州 海口 常州 泰安 涼山

巨人網(wǎng)絡通訊聲明:本文標題《談談正則表達式中的句號.》,本文關(guān)鍵詞  談談,正則,表達式,中的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《談談正則表達式中的句號.》相關(guān)的同類信息!
  • 本頁收集關(guān)于談談正則表達式中的句號.的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 和顺县| 泾阳县| 合川市| 邵东县| 菏泽市| 澳门| 富蕴县| 灵山县| 永川市| 新乐市| 东光县| 河池市| 方正县| 潞城市| 德化县| 逊克县| 米脂县| 九龙坡区| 平和县| 富顺县| 和平县| 三明市| 阿图什市| 武清区| 余江县| 奉贤区| 沂源县| 霞浦县| 嘉善县| 华蓥市| 石首市| 天柱县| 灵宝市| 宁远县| 东港市| 布拖县| 沅江市| 石台县| 澄江县| 黑龙江省| 佛冈县|