在javascript中使用var进行搜索

时间:2013-09-09 11:04:42

标签: javascript

嘿大家,我希望你能帮我解决一个问题:

我使用一个函数来获取一个组中的组成员列表。 这是返回一个变量。 从这个变量我需要看看我的当前用户(current.sys.id)是否在此列表中。 如果不做的话,如果不这样做的话。 不幸的是,即使记录在其中,我的.search也总是返回-1。

我使用gs.log命令查看不同的结果,我发现正则表达式存在于var中,即使它然后它给了我一个-1。 谁能看到我做错了什么?

这是我的代码

    var list = group_members();
    var check = new RegExp(current.sys_id);
    var control = list.search(check);
    if (control = -1) {
        set_group();
        gs.log("conf is :" + conf);
        gs.log("check is :" + check);
        gs.log("control is: " + control + "de lijst ziet er zo uit: " + list);
    } else {
        gs.log("check is :" + check);
        gs.log("control is: " + control + "de lijst ziet er zo uit: " + list);
    }
}

function group_members() {
    gs.log("functie check groep is aangeroepen");
    var answer = ' ';
    var group = "794ac672d4a301006027eb6da8731188";
    var group_mem = new GlideRecord('sys_user_grmember');
    group_mem.addQuery('group', group);
    group_mem.query();

    while (group_mem.next()) {
        if (answer.length > 0) {
            answer += (',' + group_mem.user.sys_id);
        } else {
            answer = group_mem.user.sys_id;
        }
    }
    return answer.toString();
}

function set_group() {
    gs.log("functie set_groep is aangeroepen");
    var rec1 = new GlideRecord('sys_user_grmember');
    rec1.initialize();
    rec1.user = current.sys_id;
    rec1.group.setDisplayValue('TFPP Users');
    rec1.insert();
    gs.log("groep is nu gezet");
}

提前感谢。

2 个答案:

答案 0 :(得分:1)

您的问题表明您正在寻找current.sys.id,但您的代码使用的是current.sys __id。你的问题只是这个错字吗?

顺便说一下,我会使用indexOf而不是搜索,因为你并不是使用你正在创建的正则表达式。只是做:

list.indexOf(current.sys.id);

如果它返回-1,那是因为它不在那里。

答案 1 :(得分:0)

好吧,我睡了一夜,尝试了不同的方法:

而不是返回完整的用户列表,我在功能中添加了检查。

function group_members(){
    var answer = ' ';
    var group = "794ac672d4a301006027eb6da8731188";
    var group_mem = new GlideRecord('sys_user_grmember');
    group_mem.addQuery('group',group);
    group_mem.query();

        while(group_mem.next()){
            var user = current.sys_id;
            if (user == group_mem.user.sys_id){
                return ("1")
            }
        }
    }

现在如果我的当前用户存在于列表中,它将返回1,否则将是未定义的。 这将删除整个搜索部分。 谢谢你的回复。