
[英]How do I prevent invalid characters from being entered into a form?
例如,如果我有一个表单,并且我不希望用户在其中输入数字,而是使用包含正则表达式的函数对其进行验证,那么如何防止用户输入的无效字符(在本示例中为数字) )从文本表单中显示(如果未通过正则表达式测试)? 这是我尝试过的功能,也是我尝试过的选择列表(换句话说,这不是整个程序)。 我尝试将fal ...
[英]prevent certain characters from being entered in a textfield
提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文。
我试图只允许在文本框中输入以下字符:
A
到Z
大写字母,小写字母Ñ
和ñ
和空格。 Onkeyup上运行以下功能:
FieldOnKeyUp(el) { !(/^[A-zÑñ-\s]*$/i).test(el.value)?el.value
= el.value.replace(/[^A-zÑñ-\s]/ig,''):null; }
我所做的事情不好的是,该字段仍然接受以下特殊字符:
` ^ _ \ ] and [
有人对此有智慧吗?
问题出在您的正则表达式中:
[^A-zÑñ-\s]/ig
^---- problem is here: you need to change to an uppercase Z
您已经设置了/i
忽略大小写标志,但是您还设置了一个字符范围Az
即大写A到小写字母z。 当前不需要的多余字符(“ [”等)都在大写Z和小写a之间。 尝试将其更改为AZ
,看看会发生什么。
另外,请注意,您的用户可能会通过粘贴(通过主菜单或右键单击菜单)输入无效字符,并且按键事件处理程序将无法捕获该字符。
将您的代码部分更改为如下所示的内容
FieldOnKeyUp(el) { !(/^[a-zA-ZÑñ-\s]*$/i).test(el.value)?el.value
= el.value.replace(/[^a-zA-ZÑñ-\s]/ig,''):null; }
并没有得到您的实际要求。 将插入符号^
放在[
和]
将使目标字符串不允许使用字母。 但是根据您的编码,我只是修改了不正确的正则表达式模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.