【发布时间】:2016-06-09 05:05:06
【问题描述】:
我正在尝试将两个字符串转换为相同的格式,例如 toUpperCase/toLowerCase 以比较两个字符串,而不管 javaScript 中是否区分大小写。下面是我的函数。
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!!", '');
}
}
}
我收到此错误 Uncaught TypeError: Cannot read property 'toUpperCase' of undefined 。我也尝试先转换 toString() 然后再转换为 toLowercase() 。这也是错误的(toString() undefined)。也建议我是否有任何其他方法来比较两个字符串,而不管区分大小写。谢谢!
【问题讨论】:
-
您的 if 条件
k <= usernames.length;将使其超出数组边界。数组的索引为 0,因此数组的最后一个索引将是 Arraylength-1 -
你的代码中
toUpperCase在哪里? -
@PatrickEvans 我已经修改了代码。仍然面临同样的问题
-
您的代码在编辑时工作正常,不会引发错误。 JSFiddle demo
标签: javascript jquery arrays string-matching