限制表单字段中的字符

时间:2012-01-17 17:16:51

标签: javascript html regex validation

我在表单中有一个HTML字段,使用JS和Regex,我必须限制用户可以在字段中插入的字符。表单的用户只能插入以下字符( ) * + ^ / X x,以及数字和空格(当他数字或粘贴不同的字符时,不会写入任何内容)。这可能吗?我需要正则表达式,我最终知道如何处理JS。

3 个答案:

答案 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。