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

时间:2018-07-05 01:20:51

标签: javascript regex

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

const values = 'sports is good'
const values2 = 'I\'m a 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

1 个答案:

答案 0 :(得分:0)

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

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

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

这是完整的代码段:

const values1 = 'sports is good';
const values2 = 'I\'m a 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