Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
我正在尝试将两个字符串转换为同一格式,如touppercase/tolowercase,以比较两个字符串,而不管javascript中区分大小写。下面是我的功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function submitForm() { var usernames=['one','two','Test']; var cpusername ="test"; var flag = 0; if (cpusername !=="") { for (var k = 0; k < usernames.length; k++) { var upperCasecpusername=cpusername.toUpperCase(); var getusername= usernames[k]; var upperCaseusername=getusername.toUpperCase(); if (upperCasecpusername === upperCaseusername) { flag=1; console.log(flag); //document.getElementById('cpusername').value = ''; $.messager.alert("Message","Someone already has username"+cpusername+". Try another!!", ''); } } } |
未捕获类型错误:无法读取未定义的属性"ToUpperCase"。我还尝试先转换ToString(),然后再转换为ToLowerCase()。这也是错误的(ToString()未定义)。如果有其他方法可以比较两个字符串,不管大小写敏感。谢谢!
试试这个
1 | var getusername=""+usernames[k]; |
如果不工作,那么这可能是个问题:
开关
ZZU1
为了
1 | for (var k = 0; k <= usernames.length-1; k++) |
使用EDOCX1功能是很好的,但如果要求以其他方式进行不敏感的比较,我将建议使用
1 2 3 4 5 | var str="TEST"; var result = str.match(/test/i); if(result){ // Write logic once the match found } |
试试这个
JS代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | jQuery( document ).ready(function() { var usernames=['one','two','Test']; var cpusername ="test"; var flag = 0; if (cpusername !=="") { for (var k = 0; k < usernames.length; k++) { var upperCasecpusername=cpusername.toLowerCase(); var getusername= usernames[k]; console.log(getusername); var upperCaseusername=getusername.toLowerCase(); if (upperCasecpusername === upperCaseusername) { console.log(upperCasecpusername); console.log(upperCaseusername); flag=1; console.log(flag); //document.getElementById('cpusername').value = ''; alert("Someone already has username"+cpusername+". Try another!!", ''); } } } }); |
你可以在这里看到恶魔