[英]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.