gpt4 book ai didi

Javascript 更改输入值的大小写

转载 作者:行者123 更新时间:2023-11-28 08:15:19 31 4
gpt4 key购买 nike

嗨,我正在学习 Javascript,所以请原谅我提出这样的新手问题。我试图在转换大小写后从输入值字符串中删除空格。我认为它可以与替换方法一起使用,但我想缺少一些东西。

HTML

<input type= "text" id="city2check">
<button type="submit" onClick="myCity()">Check</button>

JS

<script>         
function myCity() {

var cleanestCities = ["Cheyenne", "Santa Fe", "Tucson", "Great Falls", "Honolulu"];

var check = city2check.value;

var firstChar = check.slice(0,1);
var otherChar = check.slice(1);
firstChar = firstChar.toUpperCase();
otherChar = otherChar.toLowerCase();
var checkcity = firstChar + otherChar;

checkcity.replace(/ /g, '');


var matchfound = false;
for (var i = 0; i < cleanestCities.length; i++) {

if (checkcity === cleanestCities[i]) {
matchfound = true;
alert("correct");
break;
}
}
if (matchfound === false) {
alert("sorry not correct");
//code
}
}
</script>

http://jsfiddle.net/LVXTB/1/

最佳答案

存在一些逻辑错误,这是有效的

比较时,我将数组中的所有城市名称更改为小写,并删除了数组的空间。如果您只是替换输入中的所有空格,那么它永远不会匹配 2 个单词的城市,因为您的数组中有一个空格。如果您定义的数组没有空格,它将在比较期间保存替换操作(请参阅 http://jsfiddle.net/LVXTB/9/ )。

清理版本http://jsfiddle.net/LVXTB/12/

function myCity() {    

var cleanestCities = ["cheyenne", "santafe", "tucson", "greatfalls", "honolulu"];

var checkcity = city2check.value.toLowerCase().replace(/ /g, '');
var matchfound = false;

var l = cleanestCities.length;
for (var i = 0; i < l; i++) {
if (checkcity === cleanestCities[i]) {
matchfound = true;
alert("correct");
break;
}
}
if (matchfound === false) {
alert("sorry not correct");
//code
}
}

在原始代码中,您将第一个字母转换为大写,其余字母转换为小写,因此任何 2 个单词的城市都不会匹配,因为数组中的第二个单词为大写。

当您将空格替换为空时,任何 2 个单词的城市都不会匹配,因为在您的数组中您有一个空格。

此外,checkcity.replace(//g, ''); 不会分配替换结果的值。主要问题是您将除第一个字符之外的所有字符都转换为小写。

如果数组有混合情况那么你可以这样做

if (checkcity === cleanestCities[i].toLowerCase().replace(/ /g, '')) {

关于Javascript 更改输入值的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23663837/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com