为什么括号中的点符号表示自身而不是除换行符或行终止符之外的任何单个字符

时间:2014-05-27 05:23:11

标签: javascript regex

使用javascript,我发现点符号有三种使用方法。例如:

/./.test('1'); //true
/\./.test('.'); //true
/[.]/.test('1'); //false
/[.]/.test('.'); //true

1 个答案:

答案 0 :(得分:0)

这是因为括号代表character class,它定义了一组要匹配的字符。在字符类中,字符的含义通常是字符本身。

regular-expression.info:

  

在大多数正则表达式中,字符类中唯一的特殊字符或元字符是结束括号(]),反斜杠(),插入符号(^)和连字符( - )。 usual metacharacters是字符类中的普通字符,不需要用反斜杠转义。

在正则表达式中,您有两种方式来使用该点。元字符,匹配除了....之外的任何其他字符,或者你想要字面匹配一个点然后你通常逃脱它或把它放在一个字符类。许多人在正则表​​达式中使用[.]代替\.来匹配文字点,因为他们说它更具可读性。