字符集[^]在JavaScript中的正则表达式中意味着什么?

时间:2017-01-24 03:07:48

标签: javascript regex

来源:MDN link

解释如何使用点字符(。),文档说:

  

因此,为了匹配多行的模式,可以使用字符集[^](当然,如果你不是指IE的旧版本),它将匹配任何字符,包括换行符。

关于^字符,它说:

  

匹配输入的开头。如果multiline标志设置为true,则也会在换行符后立即匹配。

显然,^用于标记哪个字符开始一行,而不是表示任何类型的字符。所以问题是:如何[^]匹配任何字符,包括换行符?

1 个答案:

答案 0 :(得分:3)

[]这样的块意味着这些括号之间的符号。

例如,[abc]匹配abc

但是,如果此块的第一个字符是^,则表示括号中的符号:

例如,[^abc]匹配de?\n(新行),(空格)等等。

所以,[^]表示任何不在空集中的东西,或者是同一个东西,整个字符集(这包括\n字符)

"常规" dot(.)匹配任何内容,除了一个新行(\n)。所以,这相当于[^\n]。我说"常规"因为您可以指定一个选项以使点匹配任何。因此,它等同于[^]