为什么我会为此功能获得双控制台消息?

时间:2012-01-04 15:16:09

标签: javascript jquery

我有以下功能:

var checkNameLenght = function(name,nameLenght,allowedLenght,defaultName) {

    var result;

    if(!(nameLenght <= allowedLenght) || !(/[^a-z]/i.test(name))) {
        result = name; 
    }
        else {
            if(opts.debug == true) {
                console.log(name+' is to long or contains special characters / numbers | Please choose a name shorter than '+allowedLenght+' characters or remove any character / number');
            }
            result = defaultName;
        }

    return result;

}

我用它来检查字符串的长度(在我的例子中是输入的值)以及它是否包含任何特殊字符或数字。

我这样使用它:

var input = 'Somevalue';

checkNameLenght(input ,input.length,16,'Username');

唯一的问题是,如果input字符串包含上述某些条件,那么控制台将输出两次消息。

为什么会这样?

1 个答案:

答案 0 :(得分:2)

我测试了它,它工作得很好。你确定你没有两次调用该功能吗? 并尝试避免opts.debug所做的任何事情,只需使用if(console)

的普通旧js