Fer*_*ndo 6 javascript regex jquery keypress keyup
我有一个文本字段,它只接受以下字符:
允许的字符:[az 0-9 +# - .]
这是相同的过滤器SO确实在"标签"字段,当你问一个问题.如果用户键入无效字符,我希望当前文本字段值保持不变.我试过了:
$('#post_tags').keypress(function(event){
var char = String.fromCharCode(event.which)
var txt = $(this).val()
if (! txt.match(/[^A-Za-z0-9+#-\.]/)){
$(this).val(txt.replace(char, ''));
}
})
Run Code Online (Sandbox Code Playgroud)
为什么它不起作用?谢谢!
Exc*_*Cat 13
这对我有用:
$(function(){
$('#t').keypress(function(e){
var txt = String.fromCharCode(e.which);
console.log(txt + ' : ' + e.which);
if(!txt.match(/[A-Za-z0-9+#.]/))
{
return false;
}
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="t" />Run Code Online (Sandbox Code Playgroud)
/[^A-Za-z0-9+#-\.]/
Run Code Online (Sandbox Code Playgroud)
这否定了任何一个角色的匹配.要使它匹配多个字符,你必须+在那里使用:
/[^A-Za-z0-9+#-\.]+/
^
Run Code Online (Sandbox Code Playgroud)
现在要匹配整个字符串,您需要添加锚点:
/^[^A-Za-z0-9+#-\.]+$/
^ ^
Run Code Online (Sandbox Code Playgroud)
编辑:好的,似乎-这里也创建了从字符#到范围的范围..在这种情况下,您可以将其转义,或将其放在最后:
/^[^A-Za-z0-9+#\-\.]+$/
/^[^A-Za-z0-9+#\.-]+$/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26441 次 |
| 最近记录: |