请问正则表达式的“[^]”,匹配的是哪些字符?

    var temp =/foo[^]bar/.test('foo\nbar');
    console.log(temp); // true

我知道"[^abc]",表示匹配a、b、c以外的任意1个字符。但这个“[^]”,代表匹配什么呢?

阅读 2.7k
3 个回答

没遇到过,不过猜测[^]中的^肯定是除...以外的含义,那么既然^后面没有跟任何字符,所以就是一切字符,也就是说[^]匹配任何一个字符,包括不可见的换行符、制表符、空格,但是就一个字符的位置,如果是2个字符就不匹配了,所以上面的应该是想匹配foo和bar之间有且仅有隔了一个字符的字符串

我用上面那个在在线的正则匹配测试中试了下,好像是这样的:

在线正则测试

多看文档哦, https://developer.mozilla.org...

[^xyz]
一个反向字符集。也就是说, 它匹配任何没有包含在方括号中的字符。你可以使用破折号(-)来指定一个字符范围。任何普通字符在这里都是起作用的。
例如,[^abc][^a-c] 是一样的。他们匹配"brisket"中得‘r’,也匹配“chop”中的‘h’。

[^] //none of none 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进