我有一個按鈕將 input.value 提交到空陣列。
該函式正在檢查陣列中是否沒有任何匹配的名稱,如果有則拋出錯誤,但如果有小寫或大寫字母則不會。
我希望此函式將 input.value 的第一個字母大寫,并將其余字母小寫,然后再將其提交到陣列中。所以我想輕松檢查是否不會有兩個相同的名字只是以另一種方式書寫。
你知道如何使用 vanilla JS 讓它作業嗎?
const nameInput = document.getElementById('inputName');
let nameListDisplay = document.getElementById('nameListDisplay');
let assignmentDisplay = document.getElementById('assignmentDisplay');
let onlyLetters = '^[a-z???ń????óA-Z????????ó ] $';
let namesList = [];
function addName() {
if (nameInput.value.match(onlyLetters)) {
if (namesList.includes(nameInput.value)) {
console.log('error');
}
else {
console.log('name added');
namesList.push(nameInput.value);
nameInput.value = '';
displayNames();
}
}
else {
console.log('error');
}
};
uj5u.com熱心網友回復:
此函式將大寫第一個字母,小寫字串的其余部分。
function toTitleCase(str) {
return str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() txt.substr(1).toLowerCase());
}
進而:
if (nameInput.value.match(onlyLetters)) {
if (namesList.includes(toTitleCase(nameInput.value))) { // here
console.log('name already exists');
}
else {
console.log('name added');
namesList.push(toTitleCase(nameInput.value)); // here
nameInput.value = '';
displayNames();
}
}
else {
console.log('error');
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351776.html
標籤:javascript 数组 小写 大写
