我正在用html创建一个表单,对于文本输入,我想对其进行正则表达式验证,该验证只允许用户输入:字母,数字和某些字符;
/ - forward slash
- - hyphen
. - period (full stop)
& - ampersand
- spaces
我尝试过这种模式,但无济于事:
[a-zA-Z0-9\/\-\.\&\ ]
我的HTML代码:
<input type="text" id="payment_reference" name="payment_reference" maxlength="18" value="' . $payment_reference_default . '" pattern="[a-zA-Z0-9\/\-\.\&\ ]" required>
我知道如何仅获取字母字符和数字,但是我也无法管理其他字符。
答案 0 :(得分:1)
您需要删除每个非特殊字符中的转义,因为在FF(和Chrome)中,HTML5正则表达式使用u
修饰符进行编译,并且对模式设置了更大的限制。要启用匹配的1个或更多允许的字符,请在字符类后添加+
:
pattern="[a-zA-Z0-9/.& -]+"
请注意,您的模式中除-
以外的所有特殊字符在字符类中都不是特殊的。因此,只能-
进行转义,但是通常将其放在字符类的开头/结尾以避免转义。
input:valid {
color: black;
}
input:invalid {
color: red;
}
<form name="form1">
<input pattern="[a-zA-Z0-9/.& -]+" title="Please enter the data in correct format." />
<input type="Submit"/>
</form>
答案 1 :(得分:0)