![](/img/trans.png)
[英]react-router Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
[英]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.