以下功能完美无缺。但是它会在控制台中出错,并阻止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
有人有个主意吗?
答案 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)
我遇到了几乎相同的错误,最后我发现了
我没有插入"()"介于"}"和");"在拥有该方法的对象的最后定义。