Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';toUpperCase';未定义的_Javascript_Jquery_Arrays_String Matching - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';toUpperCase';未定义的

Javascript 未捕获类型错误:无法读取属性';toUpperCase';未定义的,javascript,jquery,arrays,string-matching,Javascript,Jquery,Arrays,String Matching,我正在尝试将两个字符串转换为相同的格式,如toUpperCase/toLowerCase,以比较两个字符串,而不管javaScript中是否区分大小写。下面是我的功能 function submitForm() { var usernames=['one','two','Test']; var cpusername = "test"; var flag = 0; if (cpusername !== "")

我正在尝试将两个字符串转换为相同的格式,如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!!", '');                    


                    }
                }
                }
函数submitForm(){
var用户名=['one','two','Test'];
var cpusername=“测试”;
var标志=0;
如果(cpusername!==“”)
{
for(var k=0;k
我收到此错误未捕获TypeError:无法读取未定义的属性“toUpperCase”。我还尝试先将toString()转换为toLowercase()。它也出现了错误(toString()未定义)。另外,如果有任何其他方法比较两个字符串而不区分大小写,请建议我。谢谢!

尝试以下方法:

var getusername= ""+usernames[k];
如果这不起作用,那么这可能就是问题所在:

开关

for (var k = 0; k <= usernames.length; k++)
for(var k=0;k试试这个

js代码

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!!", '');                    


             }
       }
    }
});
jQuery(文档).ready(函数(){
var用户名=['one','two','Test'];
var cpusername=“测试”;
var标志=0;
如果(cpusername!==“”)
{
for(var k=0;k

您可以使用函数查看

。toLowerCase()
&
.toUpperCase()
很好,但是如果需要使用其他不区分大小写的字符串比较方法,我建议使用
regex
。 对于不区分大小写的字符串比较,请尝试类似的方法

var str= "TEST";
var result = str.match(/test/i);
if(result){
// Write logic once the match found
}

你的if条件
k在你的代码中
toUpperCase
在哪里?可能是@PatrickEvans的重复我已经修改了代码。仍然面临相同的问题你的代码可以很好地编辑,不会抛出错误。谢谢,伙计。它确实有效。但是为什么toUpperCase不适用于数组。有什么想法吗?或者甚至是
(var k=0;k
。你试过我的第一个建议了吗?那应该会使
.toUpperCase
起作用。如果没有,那么我真的不知道可能是什么错误。@EthanJCRubik是的,你的第一个建议很好。这让大写字母起作用了。我的问题是为什么它不像java那样直接转换成大写字母。不要使用第一个建议,因为它会转换成大写字母将未定义的
值设置为字符串“未定义的”
,虽然它会阻止抛出错误,但在使用

var str= "TEST";
var result = str.match(/test/i);
if(result){
// Write logic once the match found
}