按阵列检查输入框中不需要的字符?

时间:2017-05-23 17:24:59

标签: javascript jquery

嘿伙计们正在尝试使用数组方法。保留数组中所有不需要的字符并逐个检查。

我的代码: -

HTML: -

Username:<input type="text" class="my">
 output: <span class="out">output</span>

JS: -

 $(".my").keydown(function(){
 var Ii = $.trim($(this).val());
  if (Ii.indexOf('>') == -1 && Ii.indexOf('<') == -1 && Ii.indexOf('+') == -1 && Ii.indexOf('@') == -1 && Ii.indexOf('!') == -1) { 
      $('.out').text(Ii);
  }else{
    $('.out').text('sorry you cannot input this');
  }
  });

我知道这是完全错误的,所以请使用数组给出你的逻辑。

3 个答案:

答案 0 :(得分:1)

您可以使用按键事件和事件preventDefault。

$(".my").on('keypress', function(e) {
    var c = String.fromCharCode(e.which);
    if ('><+@!'.indexOf(c) == -1) {
        $('.out').empty();
    }else{
        $('.out').text('sorry you cannot input this: ' + c);
        e.preventDefault();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


Username:<input type="text" class="my">
output: <span class="out">output</span>

答案 1 :(得分:0)

要使代码正常工作,请使用.split("")将字符串拆分为数组。

$(".my").keyup(function() {
  var Ii = $.trim($(this).val()).split("");
  if (Ii.indexOf('>') == -1 && Ii.indexOf('<') == -1 && Ii.indexOf('+') == -1 && Ii.indexOf('@') == -1 && Ii.indexOf('!') == -1) {
    $('.out').text($(this).val());
  } else {
    $('.out').text('sorry you cannot input this: '+Ii[Ii.length - 1]);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Username:
<input type="text" class="my"> output: <span class="out">output</span>

答案 2 :(得分:0)

你可以使用 $ .inArray(your_input_text,[&#34;&gt;&#34;,&#34;&lt;&#34;,&#34; +&#34;,&#34; @&#34;]) ;