输入正则表达式模式不工作

HTML 5 Input regex pattern not working

本文关键字:工作 模式 正则表达式 输入      更新时间:2023-09-26

由于某些原因,我在使用HTML5表单验证模式属性时遇到了问题。我试着匹配条件/[!?^$'''/{}]/g。我试过逃避',用全局属性删除',删除[],几乎所有东西。所以在stackoverflow上总是有第一次发布问题。

简而言之,用户不应该输入以下'/${}

<form action="#">
    <input type="text" required pattern="/[!?^$'''/{}]/g">
    <button type="submit">Submit</button>
</form>

4.20 - 4.21 New export ->应该是有效的

4/20 - 2/21 $New {export} ->应该无效

这里是小提琴:http://jsfiddle.net/TV28A/

我已经尝试了上面所有的答案和任何工作(不知道如果我测试错了)。但以防万一:

我认为如果你想阻止只有'/${}字符,这应该是正确的正则表达式[^'/''${}]*

所以代码应该是这样的:
<form action="#">
    <input type="text" required pattern="[^'/''${}]*">
    <button type="submit">Submit</button>
</form>

^字符作为第一个字符放入括号中,它否定了句子,因此[^'/''${}]*表示字符串,具有任何大小的/ ' $ { }

编辑:

按照评论的要求分享jsFiddle

在使用pattern属性时,您不需要将RegEx包含在/中。此外,g标志也是不必要的,因为表达式必须匹配整个输入字段,而不仅仅是其中的一部分。

这应该足以满足您的目的:

<form action="#">
  <input type="text" required pattern="[!?^$'''/{}]">
  <button type="submit">Submit</button>
</form>