【问题标题】:JavaScript - Using an if statement to check if a word is in a sentenceJavaScript - 使用 if 语句检查单词是否在句子中
【发布时间】:2018-03-25 14:51:06
【问题描述】:

这是我的代码

$(function() {
$.getJSON('test.json', function(data) {
  var items = [];
  $.each( data.products, function( key, val ) {
  for (var i = 0; i < data.products.length; i++) {
    var obj = data.products[i];
    if (obj.title == 'Hat') {
      var Imgs = '<div class="Hats"><img src="' + obj.imUrl + '"></div>'
      $(Imgs).appendTo($(".HatsImages"));
    }
  }
});})})

所以我要说明“obj.title”(即“普通黑色可调帽”这个句子)是否有 Hat init 这个词,然后将“obj.imUrl”附加到我的 HTML 中。

如果我将“Hat”替换为“Plain Black Adjustable Hat”,它会起作用,但我只想检查“Hat”这个词而不是完整的句子,希望这是有道理的。

【问题讨论】:

    标签: javascript loops for-loop if-statement


    【解决方案1】:

    您可以使用String#includes,但您必须记住它区分大小写。解决此问题的一种简单方法是首先转换标题toLowerCase

    要获得更多控制,我建议使用Regular Expressions

    为什么?考虑您在哪里有诸如“Chat”或“That”之类的词,其中“hat”是一个子字符串。使用正则表达式和word boundaries 来解决这个问题要容易得多。

    let title1 = "Amazing Hat"
    let title2 = "Amazing Cat"
    let title3 = "Amazing Chat"
    
    // Using includes
    console.log( title1.toLowerCase().includes("hat") ) // true  :)
    console.log( title2.toLowerCase().includes("hat") ) // false :)
    console.log( title3.toLowerCase().includes("hat") ) // true  :(
    
    // Using regular expression
    console.log( (/\bhat\b/gi).test(title1) ) // true  :)
    console.log( (/\bhat\b/gi).test(title2) ) // false :)
    console.log( (/\bhat\b/gi).test(title3) ) // false :)

    【讨论】:

      【解决方案2】:

      你想要obj.title.includes(‘hat’)

      【讨论】:

        【解决方案3】:

        使用indexOf,我相信它是适合这种情况的工具

         $(function() {
            $.getJSON('test.json', function(data) {
                var items = [];
                  $.each( data.products, function( key, val ) {
                  for (var i = 0; i < data.products.length; i++) {
                    var obj = data.products[i];
                    if (obj.title.toLowerCase().indexOf('Hat') >= 0) {
                      var Imgs = '<div class="Hats"><img src="' + obj.imUrl + '"></div>'
                      $(Imgs).appendTo($(".HatsImages"));
                    }
                  }
                });})})
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-26
          • 1970-01-01
          • 1970-01-01
          • 2018-04-21
          • 1970-01-01
          • 2020-07-06
          • 1970-01-01
          • 2015-05-29
          相关资源
          最近更新 更多