不允许在文本框上粘贴无效字符

时间:2014-05-19 04:32:18

标签: jquery

我有一个不接受引号(')和其他一些定义的特殊字符的文本框。

如何在尝试使用jquery将字符串粘贴或拖动到文本框中时验证这些无效字符?

示例:

我将字符串“tes't”拖到我的文本框中,它应该只显示“test”,因为'无效。这可能吗?

3 个答案:

答案 0 :(得分:2)

http://jsbin.com/remove-quotes-from-textarea/1/edit

$('textarea').on('input', function(){
  this.value = this.value.replace(/'/g,"");
});

如果你想确保不包含任何特殊字符,你可以这样做:

this.value.replace(/[^\w]/g,"");

Example

答案 1 :(得分:0)

这是通过js方面的正则表达式完成的。

  

str = str.replace(/(['"])/ g," \ $ 1");   ref(jQuery: How to escape single and double quotes with backslash

"的onblur"或" OnChange"您验证此事件的文本框事件。

或者

按钮点击也检查同样的事情。 (我的建议是文本框的onblur)

这是单引号/双引号等的好例子。阅读问题/答案,无论你想要什么,只需删除。

Regex in jQuery Validation - Single quote issue in jQuery

答案 2 :(得分:0)

试试这个:

var lst = ["\"", "&", "'", "%"];
    $('#txt').on('input', function () {           
      var inputText = $(this).val();
      var index = 0;
      for (var i = 0; i < inputText.length; i++) {                    
        index = $.inArray(inputText.charAt(i), lst);
        if (index >= 0) {
           var myregexp = new RegExp(lst[index], 'g');
           $(this).val($(this).val().replace(myregexp, ""));
        }
      }
    });

Working Example