我有一个输入,我绑定到keyup()
在每个密钥上,我希望它:
正则表达让我的头爆炸,任何帮助?
$('.my-input').keyup(function() {
this.value = this.value.replace(/[^0-9a-z-]/g,/[0-9a-z-]/g);
});
答案 0 :(得分:14)
this.value = this.value.toLowerCase().replace(/[^0-9a-z-]/g,"");
答案 1 :(得分:1)
$('.my-input').keyup(function() {
this.value = this.value.replace(/[^0-9a-zA-Z-]/g, '').toLowerCase();
});
答案 2 :(得分:1)
数字,字母或短划线的正则表达式为:[-0-9a-z]
(在字符类中包含文字短划线,将其指定为第一个字符;此后它被视为范围运算符)。
尝试:
$('.my-input').keyup(function() {this.value = this.value.toLowerCase().replace(/[^-0-9a-z]/g,''); });
答案 3 :(得分:0)
好问题..你快到了!
$('.my-input').keyup(function() { this.value = this.value.replace(/[^A-Za-z0-9-]/g,"").toLowerCase();
正则表达式不适合小写,使用内置函数。你的正则表达式是好的,但替换函数需要一个正则表达式,替换是一个字符串,而不是正则表达式*。
(*替换字符串有一些小的魔法,但对于小写来说还不够)