繁体   English   中英

正则表达式/ b单词边界查找单词不起作用

[英]regex /b word boundary to find word is not working

/b如何工作? 我需要找到一个句子中一个单词的完全匹配。 我有以下正则表达式和测试:

 const values = 'sports is good' const values2 = 'I\\'ma sportsman' // shoud not match const values3 = 'I\\'ve done my bisports today' //shoud not match function match(values) { return values.match(new RegExp('sports' + '\\\\b', 'i')) ? true : false } alert(match(values)) //true alert(match(values2)) // false alert(match(values3)) // I expect this to be false coz it isn't really an exact match 

为什么第三个警报为真? 我期望这是错误的,因为bisports sports并不是真正的sports

在您的正则表达式中,您仅在单词末尾添加了单词边界。

还要在开头添加一个以仅匹配确切的单词:

  return values.match(new RegExp('\\b' + 'sports' + '\\b', 'i')) ? true : false;

这是完整的代码段:

 const values1 = 'sports is good'; const values2 = 'I\\'ma sportsman'; const values3 = 'I\\'ve done my bisports today'; function match(values) { return values.match(new RegExp('\\\\b' + 'sports' + '\\\\b', 'i')) ? true : false; } console.log(match(values1)); // true console.log(match(values2)); // false console.log(match(values3)); // false 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM