我在html中创建一个表单,对于文本输入,我希望在上面有一个regex验证,只允许用户输入:字母、数字和某些字符;
/ - 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>
我只知道如何获取字母字符和数字,但允许其他字符也是我无法管理的。
2条答案
按热度按时间lnlaulya1#
2023年更新
现在,您需要始终转义字符类中字符类末尾的文字连字符,因此使用
原始答案
你需要删除every non-special char中的escaping,因为在FF(和Chrome)中,HTML5正则表达式是用
u
修饰符编译的,它对模式有更大的限制。要启用匹配1个或多个允许的字符,请在字符类后添加+
:请注意,除了
-
之外,模式中的所有特殊字符在字符类中都不是特殊的。因此,只有-
可以被转义,但通常将其放在字符类的开头/结尾以避免过度描述。a8jjtwal2#
你需要正确地转义角色。
-
我在这里没有转义,因为当你把它用作字符类中的第一个或最后一个字符时,你不需要转义Demo