【问题标题】:Search string for specific text搜索特定文本的字符串
【发布时间】:2018-12-26 01:32:25
【问题描述】:

我正在尝试在混合字符串中搜索特定文本。目前,以下仅搜索字符串的开头和结尾。如果它存在于字符串中的任何位置,我基本上想搜索一个单词。

要搜索的示例字符串:dMc67FkhyMzzEmjELDcMEfqPJkKbF4jHis

我可能想搜索例如:john

目前,这里是相关的代码片段。有什么想法吗?

我通过如下命令调用我的代码:“node file.js John bob Walter”,这使我能够传入任意数量的字符串。

const lookFor = process.argv.slice(2).map(function (f) { return f.toLowerCase().replace(/[^a-zA-Z0-9]/g, '') })

......

var re = '^(d)(' + lookFor.join('|') + ')(.+)$|^(d.+)(' + lookFor.join('|') + ')$'

......

const regexp = new RegExp(re, 'I')

......

var test = regexp.exec(account.address)

搜索应该不区分大小写。关于实现这一目标的最佳方法的任何想法?我无法理解它。

在那之后我需要解决的最后一部分是,在将整个字符串打印到控制台时突出显示我搜索的字符串。

【问题讨论】:

标签: javascript arrays string


【解决方案1】:

只需使用String.prototype.includes():

var str = "dMc67FkhyMzzEmjELDcMEfqPJkKbF4jHis";
var search = "john";
console.log(str.includes(search)); //Should return false

var str = "dMc67FkhyjohnMzzEmjELDcMEfqPJkKbF4jHis";
var search = "john";
console.log(str.includes(search)); //Should return true

如果您想删除大小写差异(例如,这不会找到jOhn),您可以使用String.prototype.toLowerCase()

var str = "dMc67FkhyMzzEmjJOHnELDcMEfqPJkKbF4jHis";
var search = "john";
console.log(str.toLowerCase().includes(search)); //Should return true

【讨论】:

  • 谢谢杰克。我刚刚更新了描述。需要注意的是,我可以传入多个字符串。我不仅要搜索一个字符串,而且还要通过一个循环搜索数千个字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
相关资源
最近更新 更多