我正在尝试在混合字符串中搜索特定文本。目前,以下内容仅搜索字符串的开头和结尾。我想从根本上搜索单词是否存在于字符串中的任何地方。
要搜索的示例字符串:dMc67FkhyMzzEmjELDcMEfqPJkKbF4jHis
我可能想搜索以下内容:约翰
现在,这是相关的代码段。有什么想法吗?我通过诸如“ 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)
搜索应该不区分大小写。对于实现此目标的最佳方法有任何想法吗?我无法解决这个问题。
在此之后,我需要做的最后一部分是在将整个字符串打印到控制台时突出显示我搜索的字符串。
答案 0 :(得分:0)
只需使用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