【问题标题】:How to search 2 words in a text with jQuery?如何使用 jQuery 在文本中搜索 2 个单词?
【发布时间】:2015-12-07 04:28:06
【问题描述】:

我需要在文本中找到2 或更多单词。
例如:
我有一个 XML 文件,我需要搜索一个名称,例如 "Manoel Silva"。 XML 中的全名是"Manoel da Silva"

所以,我需要在 XML 中查找单词。如果我按"Manoel da Silva" 搜索,我找到了名字,但如果我只搜索"Manoel Silva",我找不到:(

.....
$(xml).find('dado').each(function() {
            var doc      = $(this).find('doc').text(),
                razao    = $(this).find('razao').text(),
                fantasia = $(this).find('fantasia').text(),
                cidade   = $(this).find('cidade').text(),
                uf       = $(this).find('uf').text();

                var regex = new RegExp(razao, "g");
                var test = regex.test(nomeFiltro);
                console.log(test);

            window.indexN = razao.toLowerCase().indexOf(nomeFiltro);
......

【问题讨论】:

  • 请翻译您的代码 sn-p 以便其他社区成员可以阅读。
  • 我觉得没必要... razao = 公司名称 / nomeFiltro = nameForm / dado = data
  • 如果您在原始线程中写标签应该更具可读性。阅读器不会爬到 cmets 来查找变量所指的内容。
  • @tmarwen 变量名和标签名有什么区别?
  • @MaiconFurtado 您的正则表达式正在寻找完全匹配。如果您想要单词匹配,则必须拆分单词并测试每个单词。不是 100% 清楚什么是搜索条件

标签: jquery xml search contains indexof


【解决方案1】:

试试这个:

var names = razao.split(' ');
var snames = names[0] + '(' + names[1] + ')' + (names.length == 2 ? '{1}' : '{0}' + names[2]); 

var regex = new RegExp(snames, "g");
var test = regex.test(nomeFiltro);
console.log(test);

【讨论】:

    猜你喜欢
    • 2012-08-05
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    相关资源
    最近更新 更多