3 回答
TA贡献1824条经验 获得超6个赞
用不同的例子:
考虑这是要搜索的字符串和模式是'cat':
text = "catmania thiscat thiscatmaina";
现在定义,
'\ b'查找/匹配每个单词开头或结尾的模式。
'\ B'找不到/匹配每个单词开头或结尾的模式。
不同案例:
案例1:每个单词的开头
result = text.replace(/\bcat/g, "ct");
现在,结果是“ctmania thiscat thiscatmaina”
案例2:每个单词的结尾
result = text.replace(/cat\b/g, "ct");
现在,结果是“catmania thisct thiscatmaina”
案例3:不是在开始
result = text.replace(/\Bcat/g, "ct");
现在,结果是“catmania thisct thisctmaina”
案例4:不是最后的
result = text.replace(/cat\B/g, "ct");
现在,结果是“ctmania thiscat thisctmaina”
案例5:既不是开始也不是结束
result = text.replace(/\Bcat\B/g, "ct");
现在,结果是“catmania thiscat thisctmaina”
希望这可以帮助 :)
TA贡献1836条经验 获得超3个赞
混乱源于你的思维\b
匹配空间(可能是因为“b”表示“空白”)。
\b
匹配单词开头或结尾的空字符串。 \B
匹配不在单词开头或结尾的空字符串。这里的关键是“ - ”不是单词的一部分。因此<left>-<right>
匹配,\b-\b
因为在任何一侧都有单词边界-
。另一方面<left> - <right>
(注意空格),短划线两侧没有单词边界。单词边界是左右一个空格。
另一方面,当搜索\bcat\b
单词边界时,行为更直观,并且按预期匹配“cat”。
- 3 回答
- 0 关注
- 1648 浏览
添加回答
举报