HTML5输入模式大小写不敏感

13

我正在尝试创建一些东西,需要使用在中引入的pattern属性,使其不区分大小写,但据我所知,你不能使用标志来实现。

2011年曾有一个问题提出输入模式是区分大小写的,我希望自那时起已经改变了这个情况。如果没有,我想知道是否有办法让模式不区分大小写。我不能只使用基本的[a-zA-z],因为我需要匹配一个四个字母的单词,作为示例,它会变得很长:(word)|(WORD)|(Word)|(wOrd)......等等。

有没有办法获得这样的不区分大小写模式?

编辑:

我似乎没有在我的细节上太具体化,我需要一个特定的单词,而不仅仅是任何4个字母的单词。


[a-zA-Z]{,4} 将匹配 Word、WORD、Fred、Arry 等等... - user1864610
你最终找到了这个问题的答案吗? - oldboy
2个回答

17

好的,我认为我找到了一种比逐个列出每个组合更容易的方式来制作这个图案。

以单词“five”为例。

[fF][iI][vV][eE]

因此

pattern="[fF][iI][vV][eE]"

还没有更好的方法吗?我正在尝试匹配大约250个单词,所以这种方法至少会使“模式”的大小翻倍。 - oldboy
@oldboy 在你的情况下,我会使用一些JavaScript拦截表单提交并在脚本中进行验证。很遗憾,“pattern”属性仍然相当有限。https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern - Spedwards
是的,那就是我一直在使用的,但我写了一个脚本来生成HTML模式,这样我就可以抓取一堆处理表单验证等JS,并使用本地浏览器验证代替它。 - oldboy

2

您可以使用:

pattern="[A-Za-z]{4}"

例如:

<input type="text" name="username" required pattern="[A-Za-z]{4}" />

这个输入框需要填写四个不区分大小写的 alpha 字符。

更新:您没有回复要匹配哪些具体单词,但您可以这样做:

pattern="word|WORD|Word|wORD"

所以,例如:
<input type="text" name="username" required pattern="word|WORD|Word|wORD" />

如果需要,可以找到更多的变化。


抱歉,我应该更具体一些。我会编辑问题,但必须更具体,包括实际单词。 - Spedwards
请解释是什么?哪些具体的单词? - The Alpha
什么单词并不重要。它只是一个四个字母的单词。 - Spedwards
有没有办法(通过像/pattern/i这样的标签)匹配以下模式的任何情况? option1 | option2 | option3 | ... - 我计划包括大约250个选项,因此如果有一种方法可以结合不区分大小写的标签,那么使用包含指定选项的HTML“pattern”(而不是整个字母表)实际上是可行的。 - oldboy
[A-Za-z0-9]* 表示零个或多个字母数字字符,怎么样? - The Alpha
抱歉,我的意思是我将匹配大约250个特定词汇,那么有没有办法在HTML模式正则表达式中使用标志(例如 gi 等),以便匹配不区分大小写(例如类似 pattern='/.../i' 的东西)? - oldboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接