Как сравнить две переменные, содержащие строки в JavaScript?
Я хочу сравнить две переменные, которые являются строками, но я получаю сообщение об ошибке.
<script>
var to_check=$(this).val();
var cur_string=$("#0").text();
var to_chk = "that";
var cur_str= "that";
if(to_chk==cur_str){
alert("both are equal");
$("#0").attr("class","correct");
} else {
alert("both are not equal");
$("#0").attr("class","incorrect");
}
</script>
Что-то не так с моей операцией if?
Ответы
Ответ 1
===
не требуется. Вы знаете, что оба значения являются строками, поэтому вам не нужно сравнивать типы.
function do_check()
{
var str1 = $("#textbox1").val();
var str2 = $("#textbox2").val();
if (str1 == str2)
{
$(":text").removeClass("incorrect");
alert("equal");
}
else
{
$(":text").addClass("incorrect");
alert("not equal");
}
}
.incorrect
{
background: #ff8888;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="textbox1" type="text">
<input id="textbox2" type="text">
<button onclick="do_check()">check</button>
Ответ 2
вместо того, чтобы использовать знак ==
, более безопасно использовать знак ===
при сравнении, код, который вы публикуете, хорошо работает
Ответ 3
Я использовал ниже функцию для сравнения двух строк и работает хорошо.
function CompareUserId (first, second)
{
var regex = new RegExp('^' + first+ '$', 'i');
if (regex.test(second))
{
return true;
}
else
{
return false;
}
return false;
}