如何防止用户在文本框中编写一些特定的单词--JQuery

时间:2016-07-28 13:31:12

标签: javascript jquery

是否可以阻止用户使用textboxJQueryJavascript中输入或使用某些特定字词?例如,我有textbox,我不希望用户使用“ 电话 ”,“ Home ',' 地址 '等请帮忙。

4 个答案:

答案 0 :(得分:3)

这可能是一种选择。



> mpirun -np 2 ./fetchAndOpTestF90.x 
Rank            0 meldet a =            0
Rank            1 meldet a =            0
forrtl: severe (174): SIGSEGV, segmentation fault occurred
[...]

var txtBox = $('#text-box');
var blackList =  ['Phone', 'Home', 'Address'];

function checkBlackList(str) {
  $.each(blackList, function(i, n) {
    if(new RegExp(n, "i").test(str)) {
      txtBox.val(txtBox.val().replace(new RegExp(n, "gi"), "xxx"))
    }
  })
}

txtBox.on('keydown', function(e) {
  checkBlackList(this.value);
})




答案 1 :(得分:2)

您可以检查字符串是否包含某个单词:

if (yourVariable.indexOf("phone") >= 0){
    alert('you may not use the word phone');
}

如果你想要多个单词,你可以创建一个数组并通过它循环。

var words = ['phone', 'home', 'address', 'bobba'];
for (i = 0; i < words.length; i++) {
    if (yourVariable.indexOf(words[i]) >= 0){
        alert('you may not use the word ' + words[i]);
    }
}

当然,您可以将警报更改为您想要的任何内容,例如替换文本:

yourVariable.replace(words[i], 'xxx');

编辑我做了一个小提琴:https://jsfiddle.net/jx8wd1br/1/

答案 2 :(得分:2)

<input type="text" id="txt" />

<script>
 $(document).ready(function(){
 $("#txt").on("keydown", function(){
   var text = $("#txt").val();
   if(text.contains("Phone")){
     $("#txt").val().replace("Phone", "");
    }
   if(text.contains("Home")){
     $("#txt").val().replace("Home", "");
    }
   if(text.contains("Address")){
     $("#txt").val().replace("Address", "");
    }
 });
});
</script>

答案 3 :(得分:1)

我的建议基于:

var forbiddenWords = ['Phone', 'Home', 'Address'];
$(function () {
  $('#myTxt').on('keyup', function(e) {
    forbiddenWords.forEach(function(val, index) {
      if (e.target.value.toUpperCase().indexOf(val.toUpperCase()) >= 0) {
        e.target.value = e.target.value.replace(new RegExp( "(" + val + ")" , 'gi' ), '');
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
    <input type="text" id="myTxt">
</form>