Javascript 函数可以工作,但会产生错误
下面的函数工作得很好。然而,它在控制台中给出错误,并阻止jqueryui工作Javascript 函数可以工作,但会产生错误,javascript,jquery,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 'toU
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
有人有主意吗 您需要使用一些
字符串调用此函数
var input = removenonbtwchars("some thing");
如果您使用某个变量调用它,请尝试以下操作
var input = '';
if ( $.trim(data) != '' ) {
input = removenonbtwchars(data);
}
但是请记住,变量data
应该是string
,因为toUpperCase()
是字符串类的一种方法较短版本,在传递错误值时返回空字符串(如未定义
):
我遇到了几乎相同的错误,最后我发现
我没有在“}”和“);”之间插入“()”,在拥有该方法的对象的定义末尾插入“()”。错误是不言自明的<当传递给函数时,code>input
是undefined
。问题可能在于函数调用的位置:您传递的是undefined。“以下函数工作正常。”不,它没有,这是观察错误。如果您遇到该错误,则该函数在其第一行失败,永远不会完成,并中断对任何调用它的处理。@T.J.Crowder好吧,这可能是预期的行为。或者可能是它被调用两次,一次使用值,另一次使用未定义的值。。。。很多未知数感谢这帮我找到了问题所在,函数确实是在没有插入字符串的页面上调用的。因为这几乎是相同的错误,您认为这可能是解决OP的函数问题的方法吗?
function removenonbtwchars(input){
return input ? input.toUpperCase().replace(/\W/g, '').substring(0,16) : "";
}