正则表达式覆盖html输入字段中的文本
问题描述:
我有几个输入字段,我需要筛选输入。 我把它们放在一个类中,并使用正则表达式将字符限制为数字,字母和下划线。 工作正常,但是当我从一个输入字段选择到下一个输入字段时,光标移动到输入文本的末尾。我希望它被突出显示,以便可以根据需要键入它,而不必先用鼠标突出显示它。正则表达式覆盖html输入字段中的文本
<input type="input" class="jqfc" value="one"><br>
<input type="input" class="jqfc" value="two"><br>
<input type="input" class="jqfc" value="three"><br>
<input type="input" value="highlights"><br>
jQuery('.jqfc').keyup(function() {
this.value = this.value.replace(/[^a-z0-9\_]/gi, "");
});
答
jQuery('.jqfc').keyup(function (e) {
if (e.keyCode !== 9){
this.value = this.value.replace(/[^a-z0-9\_]/gi, "");
}
});
这样,如果tab键被按下它不会运行的逻辑。我想过要做一些类似select()
的事情,但每当你输入时就会发生这种情况。
答
这应该做的伎俩:
jQuery('.jqfc').keyup(function() {
var regex = /[^a-z0-9\_]/gi;
if(this.value.match(regex)){
this.value = this.value.replace(regex, "");
}
});
jQuery('.jqfc').on('focus, click', function(){
this.select();
});