如何在输入框中接受多个HTML5模式?

8
我正在处理一个表单,需要获取图书的ISBN号码。ISBN号码长度可以为9位或13位,我想使用HTML5模式检查输入,但是必须接受9位或13位数字。
如何在HTML5中编写此功能?

你的问题是关于正则表达式的工作原理吗?也许你想学习正则表达式? - kapa
我的问题是如何在一个输入元素上应用2个模式,以接受2种格式作为有效数据。 - cyrfandli
你不能用正则表达式做到这一点吗? - kapa
我之前尝试了错误的方法。但是谢谢,现在我明白了。 - cyrfandli
2个回答

13

pattern属性中,您可以使用正则表达式:

<input type="text" pattern="\d{9}|\d{13}">

所以这不是特定于HTML5,而是基本的正则表达式。 | 表示替代项。


1

pattern属性基于正则表达式。RegEx {}检查字符出现次数(在您的情况下是9和13)。

您无法使用一个表达式和一个{}符号来检查恰好两个不同(非相邻)长度。

您需要编写两个表达式:第一个检查11个字符,第二个检查15个字符。您可以使用一些条件将这两个正则表达式链接起来。一些if-else-conditionality存在,但可能不受浏览器支持。

示例:pattern="{9}|{13}"


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