-1

.search JS 方法似乎想要一个字符串文字而不是一个变量......

for (app in Servers)
{
    the_name = Servers [app]["Name"];
    the_app = Servers [app]["App Name"];
    search_str = "/"+Name+"/";
    hit = the_app.search(search_str);
    if (the_name == Name || the_app == "Foo Bar" )
    {
        result.Index = app;  
    }
}

我想为一组具有共同词的应用程序生成命中,例如 Name = "Skittles" 将命中 app_name == "Skittles 1.0"; 的应用程序。“吃喝玩乐 1.5”;“Skittles 3.2 - 豪华版 3.2”;等等等等

名称是用户可定义的变量。服务器是一个提供给我的对象,它列出了我可以在我的机器上运行的视频服务器,服务器中的每个项目对应一个服务器,并且在它的对象中有一个“名称”项目和一个“应用程序名称”项目。(这是虹吸的事情,这不是 HTML/Web 上下文)。

我应该考虑使用不同的方法来构造正则表达式吗?

4

2 回答 2

1

为什么选择正则表达式?使用indexOf,它与search字符串相对应。

更新:然后使用new RegExp(Name)将字符串转换为正则表达式。

更新:现在您更新了您的问题,indexOf“Skittles”仍然适用于您的所有app_names。

for (app in Servers)
{
    the_name = Servers [app]["Name"];
    the_app = Servers [app]["App Name"];

    rx = new RegExp(Name);
    hit = the_app.search(rx);

    if (the_name == Name || the_app == "Foo Bar" )
    {
        result.Index = app;  
    }
}
于 2012-08-14T07:38:47.683 回答
1

使用“RegExp”函数创建您的模式。看这里

您只需像这样创建一个模式变量:

var pattern = new RegExp( --pattern-- , --modifiers--);

干杯

于 2012-08-14T07:51:56.823 回答