简单的javascript如果使用charAt的语句不起作用

时间:2016-07-27 12:00:40

标签: javascript jquery

很简单,如果用户输入的数字不是6或9,他就会收到错误:

console.log($(this).val().charAt(0));

if($(this).val().charAt(0) != 6 || $(this).val().charAt(0) != 9){
     x=false;
  }else {
     x=true;
  }

Console.log正确显示第一个字符..表示该值存在..

但无论我输入6或7还是9,我总会弄错......为什么?

2 个答案:

答案 0 :(得分:3)

无论somevar的价值是什么,

somevar!=6 OR somevar!=9

总是如此。

这里最好的解决方案可能是正则表达式:

var x = /^[69]/.test($(this).val());

答案 1 :(得分:2)

您需要反转逻辑条件,因为两个状态不可能同时为真,因此x始终设置为false。试试这个:

var chr = $(this).val().charAt(0);
if (chr == '6' || chr == '9') {
    x = true;
} else {
    x = false;
}

从那里你可以看到你甚至不需要if条件,因为你可以直接设置x,如下所示:

var chr = $(this).val().charAt(0);
var x = chr == '6' || chr == '9';