Javascript 正则表达式可以替换除数字和小写以外的任何内容
我有一个绑定到keyup()的输入 在每个关键点上,我希望它:Javascript 正则表达式可以替换除数字和小写以外的任何内容,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个绑定到keyup()的输入 在每个关键点上,我希望它: 不允许任何不是数字、字母或破折号的字符,以及 将所有大写字符替换为小写字符 Regex让我头晕目眩,有什么帮助吗 $('.my-input').keyup(function() { this.value = this.value.replace(/[^0-9a-z-]/g,/[0-9a-z-]/g); }); 数字、字母或破折号的正则表达式为:[-0-9a-z](若要在字符类中包含文字破折号,请将其指定为第一个字符;然后将
$('.my-input').keyup(function() {
this.value = this.value.replace(/[^0-9a-z-]/g,/[0-9a-z-]/g);
});
数字、字母或破折号的正则表达式为:
[-0-9a-z]
(若要在字符类中包含文字破折号,请将其指定为第一个字符;然后将其视为范围运算符)
尝试:
好问题。。你快到了
$('.my-input').keyup(function() { this.value = this.value.replace(/[^A-Za-z0-9-]/g,"").toLowerCase();
Regex不是合适的小写工具,请使用内置函数。您的正则表达式很好,但是replace函数需要一个正则表达式,替换的是字符串,而不是正则表达式*
(*替换字符串有一些小魔力,但不足以小写)这不起作用,因为它不允许A-Z大写字母。。需要为他们考虑最终结果。。。。编辑我是傻瓜。。我首先看到你的托洛尔:)@Jake-因为我在替换之前转换成小写,所以我不需要在正则表达式中查找大写。是的,我在我的评论后注意到了托洛尔。。对其进行了编辑:)您已经获得了有关此项的RegEx部分的帮助,但不要忘记,如果用户使用鼠标(右键单击并粘贴,拖放)在输入中输入数据,则无需触发keyup事件.我刚检查过,javascript没有java那么繁琐-你可以在正则表达式的开头或结尾加上文字破折号
this.value = this.value.toLowerCase().replace(/[^0-9a-z-]/g,"");
$('.my-input').keyup(function() {this.value = this.value.toLowerCase().replace(/[^-0-9a-z]/g,''); });
$('.my-input').keyup(function() { this.value = this.value.replace(/[^A-Za-z0-9-]/g,"").toLowerCase();