var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
爲什麼是圓點。在這部分 [0-9.-A-Za-z] + 沒有被反斜線轉義?Crockford - 第7章 - parse_url
var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
爲什麼是圓點。在這部分 [0-9.-A-Za-z] + 沒有被反斜線轉義?Crockford - 第7章 - parse_url
方括號([]
)指定一個字符類:匹配[]
之間的字符串中的單個字符。
雖然字符類中,只有\
和-
有特殊含義(是元字符):
\
:一般轉義字符。-
:字符範圍。
[0-9]
意味着0
和9
之間的任意數字,而在[09-]
,-
假設一個普通-
的質量,而不是一個範圍。這就是爲什麼,裏面[]
,一個.
只是(將只匹配)點。
注:這也是值得注意的是,焦炭]
必須轉義字符類內使用,如[a-z\]]
,否則將關閉它像往常一樣。最後,使用^
(如在[^a-z]
中),指定否定字符類別,這意味着不屬於那些字符的任何字符(在該示例中爲不是a...z
的任何字符)。
所以它匹配一個點。
除了在某些情況下(例如,當它不是字符類括號中的第一個字符時轉義範圍連字符),您不需要轉義類中的特殊字符。
你可能轉義字符類內的正常元字符,但它是嘈雜和冗餘。
明白了。也謝謝你。 –
爲了完整,''''和'^'也可以做。 –
謝謝你,acdcjunior。 「在字符類中,只有/和 - 具有特殊含義(是元字符)」。順便說一句,你是說這裏是斜線還是斜線? –
@sedefcho反斜槓。 –