簡體   English   中英

在if語句中,如何使Javascript不區分大小寫?

[英]How do I get Javascript to be not case sensitive when it comes to if statements?

我完全理解Javascript區分大小寫,但涉及到if語句Sam不等於sam的情況。 我創建了一個調用此功能的提示框,當您在提示框中輸入名稱時,我希望它可以將sam轉換為Sam或同時設為True。

function search(name) {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
if (contacts[i].name === name) {
printdog(contacts[i]);
}
}
}

如果您需要更好的理解,這是我的整個腳本。

function dog(name, breed, age, color, weight, owner, owneraddress) {
    this.name = name;
    this.breed = breed;
    this.age = age;
    this.color = color;
    this.weight = weight;
    this.owner = owner;
    this.owneraddress = owneraddress;
}
//My Dogs
var sam = {
    name: "Sam",
    breed: "Chihuahua",
    age: 7,
    color: "White",
    weight: "7 lb",
    owner: "Bourton",
    owneraddress: "44 Berkley Drive"
};
var max = {
    name: "Max",
    breed: "Chihuahua",
    age: 4,
    color: "Brown",
    weight: "5 lb",
    owner: "Smith",
    owneraddress: "134 Door Ave"
};

//My array of dogs
var contacts = [sam, max];

function printdog(dog) {
    console.log(dog.name + " " + dog.owner);
}
function list() {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
printdog(contacts[i]);
}
}
list();
function search(name) {
var ourContacts = contacts.length;
for (var i = 0; i < ourContacts; i++) {
name = name.toLowerCase;
if (contacts[i].name === name) {
printdog(contacts[i]);
}
}
}

<button onclick="search(prompt('Search Dogs Name'))">Search for Dog</button>

您可以在相等比較器之前在兩端執行類似.toUpperCase()操作

只需較低大寫的一切(包括搜索和數據)。 您已經嘗試過對name進行此操作,但對contacts[i].name卻沒有進行此操作(它們分別被命名為“ Sam”和“ Max”,因此它們永遠不會等於小寫的輸入字符串)。

另外,您忘記了執行該功能-您只是對其進行了引用。

function search(name) {
    var ourContacts = contacts.length;
    name = name.toLowerCase();
//                         ^^
    for (var i = 0; i < ourContacts; i++) {
        if (contacts[i].name.toLowerCase() === name) {
//                          ^^^^^^^^^^^^^^
            printdog(contacts[i]);
        }
    }
}

您可以在兩個操作數上使用Javascript .toUpperCase()方法:

if (contacts[i].name.toUpperCase() === name.toUpperCase())

另外,您可以在兩個操作數上使用.toLowerCase()方法:

if (contacts[i].name.toLowerCase() === name.toLowerCase())

暫無
暫無

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

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