我正在尝试创建一个 html 输入标记,该标记仅接受以两种格式之一输入的数字,并拒绝所有其他输入。
我只想接受这些格式的数字,包括需要破折号:
1234-12
Run Code Online (Sandbox Code Playgroud)
和
1234-12-12
Run Code Online (Sandbox Code Playgroud)
注意:这不是日期,而是法律章节编号
我读到的有关正则表达式的所有内容都表明以下内容应该有效,但事实并非如此。
<input class="form-control"
type="text"
pattern="^(\d{4}\-\d{2}\-\d{2})|(\d{4}\-\d{2})$"
required />
Run Code Online (Sandbox Code Playgroud)
Chrome 中的 Devtools 控制台错误:
Pattern 属性值
^(\d{4}\-\d{2}\-\d{2})|(\d{4}\-\d{2})$不是有效的正则表达式:未捕获语法错误:无效的正则表达式:/^(\d{4}-\d{2}-\d{2})|(\d{4}-\d{2 })$/: 无效转义