jQuery方法,该方法禁止输入某些字符
jQuery method that disallows input of certain chars
我试图使一个jQuery方法,将删除所需的字符从选定的元素。
例如:$("input").disallowChars(/'D/g);// should disallow input of all non-digit elements in input elements
这就是我想做的,但它似乎不起作用:
$.fn.disallowChars = function(regexp){
this.keyup(function(){
var value = $(this).val();
value.replace(regexp, "");
$(this).val(value);
});
return this;
};
$("input").disallowChars(/'D/g);
我在这方面完全是个新手,我该怎么做呢?
谢谢
您可以使用String.fromCharCode()
和keypress
事件:
$.fn.disallowChars = function(regexp){
return this.keypress(function(e){
if(String.fromCharCode(e.which).match(regexp)) return false;
});
};
演示BUT不禁用任何字符粘贴到使用鼠标或粘贴键盘快捷键的输入中。
在现代浏览器上,您可以使用input
事件或change keyup paste mouseup
(ya mouseup,也可以处理掉的文本):
$.fn.disallowChars = function(regexp){
return this.on('input', function(){
this.value = this.value.replace(regexp, '');
});
};
BUT则一旦输入值被替换,文本插入符号将放在字符串输入的结束(或开始取决于浏览器的行为)。
演示这里有一个方便的例程,我用它来清理当前项目中的一些输入字段:
// REPLACE SELECTOR WITH YOUR ID(S) OR SELECTORS...
$('input').bind("change keyup", function() {
var val = $.trim($(this).val());
// READ UP ON REGEX TO UNDERSTAND WHATS GOING ON HERE... ADD CHARACTERS YOU WANT TO ELIMINATE...
var regex = /[":'/'+;<>&''/'n]/g;
if (val.match(regex)) {
val = val.replace(regex, "");
$(this).val($.trim(val));
}
});
这是我最近使用的另一个版本:
$("#myField").on("keypress", function(event) {
// THIS ONLY ALLOWS A-Z, A-Z, 0-9 AND THE @ SYMBOL... just change stuffToAllow to suit your needs
var stuffToAllow = /[A-Za-z0-9@ ]/g;
var key = String.fromCharCode(event.which);
if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || stuffToAllow.test(key)) {
return true;
}
alert( key + ' character not allowed!');
return false;
});
相关文章:
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 使用jQuery.css()方法时,是否需要转义任何字符
- JavaScript意外的令牌<,有什么方法可以逃避错误(或至少跳过那些无用的字符)
- 有没有一种方法可以让javascript不计算特定的字符
- 使用JS找出字符串中字符重复的最简单方法是什么
- 通过字符串最有效的方法是什么;s字符
- 在附加方法jquery validate中为特殊字符使用regex
- 是否有一种方法可以从encodeURIComponent中排除某些字符
- 任何匹配模式的方法,要么在某个字符之前,要么在某个字符之后
- 检查另一个字符串 JavaScript 中一个字符串是否有任何字符的最佳方法
- 将字符串解析为一系列转义十六进制字符的方法是什么
- 将ascii字符发送到mailto而不达到URL限制的最有效方法
- (仅在IE中)SCRIPT65535:对方法或属性访问的意外调用.主.js,第 152 行字符 28
- 从所有单词中替换,即使用破折号分隔,第一个字符用大写[更简单的方法]
- 为什么.replace 方法使用正斜杠字符将第一个参数括起来
- 在 url 中编码特殊字符的最佳方法
- 分机.js确认方法添加新行字符
- 对 URI 组件非 utf-8 字符进行编码并相应地解码它们的正确方法是什么
- 在 JavaScript 字符串数组中获取相邻字符的最佳方法是什么?
- 使用atob()方法时出现无效字符错误