功能有效,但会出错

时间:2014-01-23 08:18:16

标签: javascript jquery

以下功能完美无缺。但是它会在控制台中出错,并阻止jqueryui工作。

function removenonbtwchars(input){

    input = input.toUpperCase();
    input = input.replace(/\W/g, '');
    input = input.substring(0,16);

    return input;
}

错误:

Uncaught TypeError: Cannot call method 'toUpperCase' of undefined scripts_V2.js:1924
removenonbtwchars scripts_V2.js:1924
(anonymous function) scripts_V2.js:1934
fire jquery-1.9.1.js:1037
self.fireWith jquery-1.9.1.js:1148
jQuery.extend.ready jquery-1.9.1.js:433
completed

有人有个主意吗?

3 个答案:

答案 0 :(得分:1)

您需要使用其中的string来调用此函数。

var input = removenonbtwchars("some thing");

如果您使用某个变量调用它,请尝试使用

var input = '';
if ( $.trim(data) != '' ) {
    input = removenonbtwchars(data);
}

但请记住,变量data应为string,因为toUpperCase()是字符串类的方法

答案 1 :(得分:0)

传递假值(如undefined)时返回空字符串的较短版本:

function removenonbtwchars(input){
    return input ? input.toUpperCase().replace(/\W/g, '').substring(0,16) : "";
}

答案 2 :(得分:0)

我遇到了几乎相同的错误,最后我发现了

我没有插入"()"介于"}"和");"在拥有该方法的对象的最后定义。