如何在提交到数组 Javascript 之前将 input.value 更改为大写
How to change input.value to capitalize before submitting to array Javascript
我有一个提交 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');
}
};
此函数会将字符串的首字母大写并小写。
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');
}
}
我有一个提交 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');
}
};
此函数会将字符串的首字母大写并小写。
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');
}
}