How to perform a case insensitive string comparison?
本问题已经有最佳答案,请猛点这里访问。
我的网站上有一个文本框,用户可以输入命令。但问题是命令是区分大小写的。如何使命令不区分大小写?这是我的代码:
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | <!doctype html> <html> <head> Random Project </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> <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"> <button id="button1" name="button1" aria-label="Help me" onClick="showAlert();"> <span id="button1_text">Help me</span> </button> <span class="information">© Copyright DemDevs 2013. All rights reserved. Made by Omar LatrecheDonate now</span> <span class="tip">Tip: </span><span class="tip_text">The commands are NOT case sensitive</span> </body> </html> |
任何帮助都将不胜感激。
谢谢,奥玛尔!
编辑:
我发现了,我做了两个新的变量:
1 | var txtValUpper = txtVal.toUpperCase(); |
和
1 | var txtValLower = txtVal.toLowerCase(); |
然后将它们放入代码中,例如:
4若要对字符串进行不敏感的大小写比较,请先将它们转换为一致的大小写。
1 | if ("Foo".toLowerCase() ==="fOo".toLowerCase()) |
可以将字符串转换为大写并进行比较
1 | if(txtVal.toUpperCase() ==="Donate".toUpperCase()) |
这条线之后
1 2 | var txtVal = txtCtrl.value; txtVal = txtVal.toLowerCase(); |