Js正则错误用法/[\b\B]/
Js正则中/[\b\B]/
并不是表示所有的边界,而是指匹配退格符\b
和B
。
解释
- Js中
\b
表示单词边界,也就是\w和\W的交接空间 - Js中
\B
表示非单词边界,也就是\W和\W的交接空间
我们直觉上会认为/[\b\B]/
表示所有的边界,因为平时使用/[\w\W\d\D]/等等都是可以匹配正确的,但是/[\b\B]/
却不一样。
代码实例
js
/\b/.test('js') // true 匹配了j前面和s后面的边界
/\B/.test('js') // true 匹配了js中间的边界
/[\b\B]/.test('js') // false 匹配不到相应字符
/[\b]/.test('\b') // true 匹配退格符
/[\B]/.test('B') // true 匹配大写字母B
Tips
挺反直觉的用法,踩坑了记录下!