在javascript字符串搜索中查找整个单词而不是单词的一部分

时间:2019-12-03 14:32:18

标签: javascript regex indexof

我试图检查'selected'是否出现在'sizerange'中。但是目前它的评估结果是正确的,因为XS在'sizerange'中。我对L和XL有同样的问题。

我认为我需要使用正则表达式\ b \ b作为单词的开头或结尾,但无法使其与变量一起使用

var sizerange = 'XS M L XL';
    var selected = 'S'

    if(sizerange.indexOf(selected) == -1){
    $( this ).addClass('sold-out');
        } else {
    $( this ).addClass('in-stock');
    };

任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

var sizerange = 'XS M L XL';
var arraySizes = sizerange.split(' ');
var selected = 'S'

if(!arraySizes.includes(selected)){
  $( this ).addClass('sold-out');
} else {
  $( this ).addClass('in-stock');
};

答案 1 :(得分:0)

最简单的方法是将其拆分为一个数组并使用include。 (将其存储为数组而不是字符串会更有意义)

var sizerange = 'XS M L XL';
var selected = 'S'

if (sizerange.split(/\s/).includes(selected)) {
  console.log('in stock')
} else {
  console.log('sold out')
}

其他选项是使用boundaries

的reg exp

var sizerange = 'XS M L XL';
var selected = 'S'

var regexp = new RegExp("\\b" + selected + "\\b");

if (regexp.test(sizerange)) {
  console.log('in stock')
} else {
  console.log('sold out')
}