Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符编码的意义是什么_Javascript_Regex_Sizzle - Fatal编程技术网

Javascript 字符编码的意义是什么

Javascript 字符编码的意义是什么,javascript,regex,sizzle,Javascript,Regex,Sizzle,我正在读源代码。当我读到关于字符编码的规则时,我感到困惑。在源代码中,字符编码定义如下: characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+" 它看起来像是试图匹配\\。或\w-或^\x00-\xa0。 我知道[\w-]表示\或w或-,我还知道[^\x00-\xa0]表示\x00-\x20中没有的任何内容。谁能告诉我\\的意思。和\x00-\x20 谢谢 我想我知道那是什么。字符编码的类型为字符串。因此,如果我们分配如下: charact

我正在读源代码。当我读到关于字符编码的规则时,我感到困惑。在源代码中,字符编码定义如下:

characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+"
它看起来像是试图匹配\\。或\w-或^\x00-\xa0。 我知道[\w-]表示\或w或-,我还知道[^\x00-\xa0]表示\x00-\x20中没有的任何内容。谁能告诉我\\的意思。和\x00-\x20

谢谢

我想我知道那是什么。字符编码的类型为字符串。因此,如果我们分配如下:

characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+"
characterEncoding的值为:

(?:\\.|[\w-]|[^\x00-\xa0])+
因此,如果我构建一个如上所述的正则表达式,它意味着:

[\w-] // A symbol of Latin alphabet or a digit or an underscore '_' or '-'
[^\\x00-\\xa0] // ISO 10646 characters U+00A1 and higher
\\. // '\' and '.'

所以这一次,我的问题是,什么时候会出现这种模式。工作?

它只是CSS标识符、类、标记和属性的有效正则表达式格式。源代码注释中还有一个链接。以下是规则,包括可能使用反斜杠来回答您的问题:

4.1。字格

以下规则始终适用:

除不受CSS控制的部分外,所有CSS样式表都不区分大小写。例如,HTML属性id和类、字体名称和URI的值的大小写敏感度不在本规范的范围内。请特别注意,元素名称在HTML中不区分大小写,但在XML中区分大小写

在CSS3中,标识符(包括选择器中的元素名称、类和ID)参见[SELECT][或者这仍然是真的]只能包含字符[A-Za-z0-9]和ISO 10646字符161及更高,加上连字符和下划线;它们不能以数字或连字符开头,后跟数字。它们还可以包含转义字符和任何ISO10646字符作为数字代码,请参见下一项。例如,标识符B&W?可以写为B\&W\?或B\26 W\3F。参见[UNICODE310]和[ISO10646]

在CSS3中,反斜杠字符表示三种类型的字符转义

首先,在字符串内部,请参见[CSS3VAL],将忽略后跟换行符的反斜杠,即认为该字符串不包含反斜杠或换行符

第二,它取消了特殊CSS字符的含义。除十六进制数字以外的任何字符都可以用反斜杠转义,以消除其特殊含义。例如,\是由一个双引号组成的字符串。样式表预处理器不能从样式表中删除这些反斜杠,因为这样会更改样式表的含义

第三,反斜杠转义允许作者引用他们无法轻松放入样式表中的字符。在这种情况下,反斜杠后面最多有六个十六进制数字0..9A..F,代表带有该数字的ISO10646[ISO10646]字符。如果十六进制数字后面有一个数字或字母,则需要明确数字的结尾。有两种方法可以做到这一点:

带有空格或其他空白字符:\26 B&B。在这种情况下,用户代理应将CR/LF对13/10视为单个空白字符。 通过精确提供6个十六进制数字:\000026B&B 事实上,这两种方法可以结合使用。十六进制转义后只忽略一个空白字符。请注意,这意味着转义序列之后的实空间本身必须转义或加倍

反斜杠转义总是被认为是标识符或字符串的一部分,即\7B不是标点符号,即使{是,\32允许在类名的开头,即使2不是


该变量最好命名为css3Identifier之类的

将[\w-]|[^\x00-\xa0]转换为更符合规范的等效形式:

[a-zA-Z0-9_-]|[\u00A1-\uFFFF]
假设A1是161,uu是下划线,-是破折号,然后 :

在CSS3中,标识符(包括选择器中的元素名称、类和ID)参见[SELECT][或者这仍然是真的]只能包含字符[A-Za-z0-9]和ISO 10646 161及更高的字符,以及连字符和下划线_

而更高的则由-\uFFFF覆盖

\\\.匹配任何带有反斜杠的单个字符。例如,-\7B将匹配\7,然后B将被捕获 按中间选项。它还匹配\n、\r、\t等