Javascript 如何防止用户使用jquery在html输入框中输入和复制任何非ascii字符?
我有一个文本框来输入一些东西。我想允许用户输入所有ASCII字符。我甚至不希望用户复制非ascii字符。如何使用jquery和简单javascript实现这一点。@#$etc是允许的,因为它们是ascii码。无需复制或通过键盘输入。如果您的意思是仅使用字母数字值,则这将起作用:Javascript 如何防止用户使用jquery在html输入框中输入和复制任何非ascii字符?,javascript,jquery,Javascript,Jquery,我有一个文本框来输入一些东西。我想允许用户输入所有ASCII字符。我甚至不希望用户复制非ascii字符。如何使用jquery和简单javascript实现这一点。@#$etc是允许的,因为它们是ascii码。无需复制或通过键盘输入。如果您的意思是仅使用字母数字值,则这将起作用: 功能检查输入(f){ 变量字段=$(f); field.val(field.val().replace(/[^a-z0-9]/gi'); } @#$是ascii,也许你是指字母数字?我的意思是用户只允许输入/复制as
功能检查输入(f){
变量字段=$(f);
field.val(field.val().replace(/[^a-z0-9]/gi');
}
@#$是ascii,也许你是指字母数字?我的意思是用户只允许输入/复制ascii字符,其他什么都不允许。但是你列出的字符,@#$
都是ascii字符。我认为这是不可能的。不过,您最迟可以在提交时删除字符。BTW-HTML字符是Unicode(在JavaScript中使用UTF-16编码),您希望允许的子集似乎是block.Hm。。我认为native JS没有任何.val()
方法。jQuery是一个问题,我使用的是标记。那么您可能想要$(field)
而不是field
。更改和KeyUp事件在输入后很快就覆盖了大多数情况。不过,这里有一个奇怪的情况:在Windows桌面Chrome上运行此代码段时,Alt+0151(m-dash)不会触发这些事件,除非出现其他交互,如附加键或失去焦点。我总是怀疑我对事件何时触发的理解。我只是用你的片段偶然发现的,所以我不知道是否还有其他事件发生。这绝对是一个极端的情况;一个不会影响典型web应用程序的应用程序。