gpt4 book ai didi

javascript - 如何使用依赖于变量的模式执行 Javascript 匹配?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:38:41 24 4
gpt4 key购买 nike

当前执行 Remy Sharp's jQuery tag suggestion plugin只检查标签开头的匹配项。例如,键入“Photoshop”不会返回名为“Adobe Photoshop”的标签。

默认情况下,搜索区分大小写。我稍微修改了它以 trim 多余的空格并忽略大小写:

for (i = 0; i < tagsToSearch.length; i++) {
if (tagsToSearch[i].toLowerCase().indexOf(jQuery.trim(currentTag.tag.toLowerCase())) === 0) {
matches.push(tagsToSearch[i]);
}
}

我试图做的是再次修改它,以便在用户输入“Photoshop”时能够返回“Adobe Photoshop”。我试过使用 match,但当模式中存在变量时,我似乎无法让它工作:

for (i = 0; i < tagsToSearch.length; i++) {
var ctag = jQuery.trim(currentTag.tag);
if (tagsToSearch[i].match("/" + ctag + "/i")) { // this never matches, presumably because of the variable 'ctag'
matches.push(tagsToSearch[i]);
}
}

以这种方式执行正则表达式搜索的正确语法是什么?

最佳答案

如果您想在 JavaScript 中动态执行正则表达式,则必须使用 RegExp object .我相信您的代码看起来像这样(尚未测试,不确定,但总体思路正确):

for (i = 0; i < tagsToSearch.length; i++) {
var ctag = jQuery.trim(currentTag.tag);
var regex = new RegExp(ctag, "i")
if (tagsToSearch[i].match(regex)) {
matches.push(tagsToSearch[i]);
}
}

关于javascript - 如何使用依赖于变量的模式执行 Javascript 匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/798662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com