如何执行不区分大小写的字符串比较?

问题描述:

我在我的网站上有一个文本框,用户可以输入命令。但事情是命令是区分大小写的。如何使命令不区分大小写?这里是我的代码:如何执行不区分大小写的字符串比较?

的JavaScript:

function showAlert() { 

    var txtCtrl = document.getElementById("textbox1"); 

    var txtVal = txtCtrl.value; 

    if (txtVal == '') { 
     alert('Please fill in the text box. For a list of commands type "Help" into the text box.'); 
    }else if (txtVal == 'Start' || txtVal == 'start') { 
     alert('Hello. What would you like me to do?'); 
    }else if (txtVal === 'Weather' || txtVal === 'weather') { 
     window.location = "https://www.google.com/#q=weather"; 
    }else if (txtVal === 'Time' || txtVal === 'time') { 
     alert('The current time according to your computer is' + formatTime(new Date())); 
    }else if (txtVal === 'Help' || txtVal === 'help') { 
     window.location = "help/index.html"; 
    }else if (txtVal === 'Donate' || txtVal === 'donate') { 
     window.location = "donate/index.html"; 
    }else if (txtVal === 'www.' || txtVal === 'WWW.') { 

    }else{ 
     alert('Sorry, I do not reconise that command. For a list of commands, type "Help" into the text box.'); 
    } 
} 
//Show time in 24hour format 
function showTime(){ 
    var today = new Date(); 
    var h = today.getHours(); 
    var m = today.getMinutes(); 
    return [ h, m ].join(':') 
} 
//Show time in 12hour format 
var formatTime = (function() { 
    function addZero(num) { 
     return (num >= 0 && num < 10) ? "0" + num : num + ""; 
    } 

    return function (dt) { 
     var formatted = ''; 

     if (dt) { 
      var hours24 = dt.getHours(); 
      var hours = ((hours24 + 11) % 12) + 1; 
      formatted = [formatted, [addZero(hours), addZero(dt.getMinutes())].join(":"), hours24 > 11 ? "PM" : "AM"].join(" ");    
     } 
     return formatted; 
    } 
})(); 

和HTML:

<!doctype html> 
<html> 
<head> 
<title>Random Project</title> 
</head> 
<style type="text/css"> 
body { 
    margin:0; 
    font-family: arial, sans-serif; 
    padding-top: 80px; 
} 
.container { 
    margin:auto; 
    text-align:center; 
} 
.logo { 
    margin:auto; 
    width:512px; 
    text-align:center; 
    padding-bottom:0px; 
} 
#textbox1 { 
    border: 1px solid #ddd; 
    border-radius: 0px 0px 0px 0px; 
    width: 512px; 
    padding-top: 5px; 
    padding-bottom: 5px; 
    padding-left: 7px; 
    padding-right: 7px; 
    height: 20px; 
    font-size: 16px; 
    outline: none; 
    font-family: arial, sans-serif; 
} 
#textbox1:focus { 
    border: 1px solid #0266C8; 
} 
#button1 { 
    margin-top: 22px; 
    padding: 2px 10px 2px 10px; 
    outline:none; 
    background-color:#eee; 
    border:1px solid #ddd; 
    border-radius:2px; 
} 
#button1:hover { 
    background-color: #f5f5f5; 
} 
#button1:focus { 
    border: 1px solid #0266C8; 
} 
#button1_text { 
    font:bold 11px/27px Arial,sans-serif!important; 
    color:#333; 
} 
.information { 
    font-size:12px; 
    color:#555; 
} 
.separator { 
    height:100px; 
} 
.tip { 
    color:green; 
    font-weight:bold; 
    font-size:12px; 
    margin-top:10px; 
} 
.tip_text { 
    color:#111; 
    font-weight:normal; 
} 
</style> 
<body> 
<div class="container"> 
    <img class="logo" src="logo.png" width="450" height="110" alt="Random Project"> 
    <input type="text" name="textbox1" value="" spellcheck="false" dir="ltr" placeholder="Type here" id="textbox1"><br> 
    <button id="button1" name="button1" aria-label="Help me" onClick="showAlert();"> 
     <span id="button1_text">Help me</span> 
    </button> 
    <div class="separator"></div> 
    <span class="information">&copy; Copyright DemDevs 2013. All rights reserved. Made by Omar Latreche<br><a href="donate/index.html">Donate now</a></span> 
    <div class="tip"> 
     <span class="tip">Tip: </span><span class="tip_text">The commands are NOT case sensitive</span> 
    </div> 
</div> 
<div class=""></div> 
</body> 
</html> 

任何帮助将不胜感激。

谢谢,奥马尔!

编辑:

我想通了,我做了两个新的变量:

var txtValUpper = txtVal.toUpperCase(); 

var txtValLower = txtVal.toLowerCase(); 

然后把它们放进例如代码:

if (txtValUpper == 'start' || txtValLower == 'start') 
{ 
    alert('Hello. What would you like me to do?'); 
} 
+0

打开命令值和价值,你把它比作进入上层或小写变型后。 – Jite

+0

@Juhana:当发布重复内容时,您有真正的礼物可以找到原件。我相信你没有得到足够的感谢,所以:谢谢。 –

+0

@ T.J.Crowder谢谢,有时你只是知道这个问题肯定已经被问过一百万次了:) – JJJ

不区分大小写比较字符串,首先将它们转换为一致的情况。

if ("Foo".toLowerCase() === "fOo".toLowerCase()) 

此行

var txtVal = txtCtrl.value; 
txtVal = txtVal.toLowerCase(); 
+3

**和**然后OP应该使他/她比较他们所有的小写。事实上,这个答案实际上会破坏事情。 –

您可以将字符串转换为大写并加以比较

if(txtVal.toUpperCase() === "Donate".toUpperCase())