【问题标题】:How to match one string by ignoring special character如何通过忽略特殊字符来匹配一个字符串
【发布时间】:2016-12-14 05:52:18
【问题描述】:

我正在通过 autosuggest 和 solr 实现搜索技术。

我得到了一堆带有特殊字符的匹配字符串。例如,如果我搜索

jp 

返回的字符串包括:

jp,
j p ,
j.p.,
j.p. nag,
j-p-naga 

我需要通过忽略特殊字符来突出显示所有包含“jp”的字符串。

预期输出如下:

“j-p-naga”----“j-p”应该突出显示({span}j-p{/span}-naga

【问题讨论】:

  • 到目前为止你的代码是什么?你到底想强调什么? (“忽略特殊字符,所有字符串都包含“jp””)请通过编辑改进您的问题。阅读stackoverflow.com/help/mcve
  • 我的输入字符串是“jp”。那么输出是: jp---highlight 应该是 "jp" j p--- highlight 应该是 "j p" j.p.--- highlight 应该是 "j.p." J.P。 nag---- 高亮应该是 "j.p" j-p-naga--- 高亮应该是 "j-p"
  • 重申您难以理解的问题并不是澄清的方法。你需要找到一种更清晰的提问方式。再问一遍并不是一种有效的技巧。

标签: javascript solr


【解决方案1】:

您想消除特殊字符吗?使用正则表达式:

function removeSpecials(str) {
  return str.replace(/[^a-zA-Z0-9]/g, '');
}

console.log('jp' === removeSpecials('j .$#@p#@'));
console.log('jp' === removeSpecials('j.p.,');
// Both true

或者您可能想检查一个字符串是否在任何位置中包含字符j 后跟p

function strHasJP(str) { return /[^j]*j[^p]*p.*/.test(str); }

我不确定您要做什么。如需有关 RegExp 的帮助,请访问此处https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多