簡體   English   中英

未捕獲的TypeError:無法讀取未定義的屬性“ toUpperCase”

[英]Uncaught TypeError: Cannot read property 'toUpperCase' of undefined

我試圖將兩個字符串轉換為相同的格式,例如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:無法讀取未定義的屬性'toUpperCase'。我也嘗試過先轉換toString(),然后再轉換為toLowercase()。它也犯了錯誤(toString()undefined)。 如果沒有其他區分大小寫的方式來比較兩個字符串,還建議我。 謝謝!

嘗試這個:

var getusername= ""+usernames[k];

如果這不起作用,則可能是問題所在:

開關

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

對於

for (var k = 0; k <= usernames.length-1; 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!!", '');                    


             }
       }
    }
});

您可以在此處查看演示

使用函數.toLowerCase().toUpperCase()很好,但是根據其他不區分大小寫的字符串比較方法,我建議使用regex 嘗試類似這樣的操作以區分大小寫的字符串

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM