【问题标题】:Search-Filter in Javascript is not workingJavascript 中的搜索过滤器不起作用
【发布时间】:2016-05-30 13:03:18
【问题描述】:

我正在尝试制作一个小型搜索引擎,用于在 HTML 代码中搜索 ID。 我做了某事。像这样已经批量了

dir * %typed% *

然后,包括字符串“typed”在内的所有元素都出现了。所以,我的问题是:我怎样才能在 Javascript 中做到这一点?

PS:
In Batch: * %var% *
In Javascript: ???

如果你能帮助我,谢谢!

【问题讨论】:

  • 您要搜索id 属性吗?我建议不要搜索原始 html 字符串,而是先将其解析为 DOM 元素。然后,您将能够使用Document 实用程序函数,例如querySelectorAlltextContent

标签: javascript batch-file search filter


【解决方案1】:

首先获取页面的所有ids。

var ids = Array.prototype.slice.call(document.querySelectorAll('*'))
                     .map( el => el.getAttribute('id'))
                     .filter(Boolean)

然后你可以检查哪一个匹配你的模式

var stringToSearch = 'typed';
ids.filter( id => id.includes( stringToSearch ) );

【讨论】:

    【解决方案2】:

    尝试将字符串变成正则表达式:

    // Create the regex once
    var searchString = 'something%typed%';
    var rxString = searchString.replace(/%/g, '.*');
    var regex = new RegExp(rxString, 'i');
    
    // (...)
    // Then, for each string you want to search:
    
    var stringToCheck = 'something was typed somewhere';
    var found = regex.test(stringToCheck);
    
    alert(found);
    

    【讨论】:

      猜你喜欢
      • 2015-03-12
      • 1970-01-01
      • 2018-08-23
      • 2018-11-28
      • 2016-08-04
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多