我在表单中有一个HTML字段,使用JS和Regex,我必须限制用户可以在字段中插入的字符。表单的用户只能插入以下字符( ) * + ^ / X x
,以及数字和空格(当他数字或粘贴不同的字符时,不会写入任何内容)。这可能吗?我需要正则表达式,我最终知道如何处理JS。
答案 0 :(得分:2)
试试这个正则表达式
[^\(\)\*+\^/Xx0-9 ]
这里我们试图找到一个不包含任何允许字符的模式。如果你发现这意味着输入的字符是错误的。
答案 1 :(得分:1)
对此没有正确或错误的答案 通常使用特定条件的逻辑偏差检查是否较便宜 如果听起来更好说允许,那么使用允许(正)字符类。
允许上课:[()*+^/Xx0-9 ]
,支票:<space>
(-+
/-9
X
\^
x
不允许上课:[^()*+^/Xx0-9 ]
,支票:\0-\37
!-'
,
\-
.
:-W
Y-\]
_-w
y-\377
从统计数据来看,如果输入的数据的%99有效,那么'允许'类将减少工作量 不是每个角色或范围都必须检查 “不允许”课程必须检查每个范围。
在这种特殊情况下,负类有更多的范围和字符要检查,其边界为
如果大多数数据无效,效率会更高,
答案 2 :(得分:0)
关于:
[^\(\)\*+\^/Xx0-9 ]
这些角色都不需要在集合中进行转义(但可以这样做)。
如果要限制用户类型(这使用jquery方法):
$('#in1').keyup(function (evt) {
var content = $('#in1').val();
$('#in1').val(content.replace(/[^()*+^/Xx0-9]/g, ""));
return true;
});
其中'in1'是输入的id。