js正则/\./ 和 /[.]/有什么区别?

这两个正则都是只能匹配‘.’号吧?

阅读 4k
5 个回答

/\.//[.]/ 只能匹配`'.'。
之前我也很有疑惑,但是没有一个绝对规律的答案。

\

  引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配。如.用来匹配点字符,而不是任何字符的通配符。

    [ ] 
  [c1-c2]
  [^c1-c2]

  字符组,匹配括号中的任何一个字符,并不是要全部匹配。如/x[zav]e/匹配xze、xae和xve,但是不匹配xxe。如/[0-9]/可以匹配任何数字字符;如/[A-Za-z]/可以匹配任何大小写字母。如正则表达式[^269A-Z] 将匹配除了2、6、9和所有大写字母之外的任何字符。

之前也试过一些符号,对于这两个操作符,特殊符号没有绝对规律,倒是特殊字母匹配符还是有规律的,见下。

'love.'.replace(/./, '');  //"ove."  通配
'love.'.replace(/\./, '');  //"love"  点
'love.'.replace(/[.]/, ''); //"love"  点
'love.'.replace(/[\.]/, ''); //"love"  点

但是:
'lo v^se.'.replace(/\^/, ''); //"lo vse."  匹配^
'lo v^se.'.replace(/[^]/, '');  //"o v^se." 匹配开始去了,并没有匹配^
'lo v^se.'.replace(/[\^]/, ''); //"lo vse." 要加一个这样才匹配^


'lo vse.'.replace(/\s/, '');  //"lovse." 匹配空格
'lo vse.'.replace(/[s]/, ''); //"lo ve."  匹配字母
'lo vse.'.replace(/[\s]/, '');  //"lovse."  要加一个\才匹配空格

'    lovte.'.replace(/\t/, '');  //"lovte. 匹配制表符
'    lovte.'.replace(/[t]/, ''); //"    love."  匹配字母
'    lovte.'.replace(/[\t]/, '');  //"lovte."  要加一个\才匹配制表符

可以试试更多...

js正则/\.//[.]/什么区别!

都是表示 .字符本身。

字符组([])中的元字符跟字符组之外的元字符的规则是不一样的,许多在字符组外需要转义的字符在字符组中都能直接使用

[wW] 匹配任意字符

感觉都是匹配 . 字符

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