有没有办法为 HTML5 输入的模式属性应用正则表达式修饰符?

Piw*_*oli 3 html javascript regex validation input

HTML规范中有这个片段,但要么我不理解规范,要么它没有完全说明关于正则表达式修饰符的任何信息。

Wik*_*żew 5

您应该查看此HTML5 模式属性文档:

如果一个input元件具有pattern指定的属性和属性值,作为当与JavaScript正则表达式编译globalignoreCasemultiline标志被禁用(见ECMA262版5,部分15.10.7.2通过15.10.7.4),编译成功,然后将所得的定期expression 是元素的编译模式正则表达式。如果元素没有这样的属性,或者值没有成功编译,则元素没有编译模式正则表达式。[ECMA262]

因此,无法将正则表达式修饰符应用于此属性。

以防万一您需要使用不区分大小写的模式:使用字符类,例如匹配“球”,使用pattern="[Bb][Aa][Ll]{2}".

多行模式通常不是必需的,因为在大多数情况下,正在检查单行字符串。

由于默认情况下正则表达式是锚定的,因此没有必要支持g修饰符。