gpt4 book ai didi

javascript - javascript模式的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:35:59 24 4
gpt4 key购买 nike

<input type="text" name="address" pattern="[0-9a-zA-Z ,\.\/\-&']{0,}">

它将允许除少数特殊字符外的所有字符,但我不希望 '//' '///' 或任何像这样的特殊字符重复。我应该改变什么?

最佳答案

您需要将模式重写为

pattern="(?:[0-9a-zA-Z]*(?:[ ,./&'-][0-9a-zA-Z]+)*)?"

查看 JS 演示:

<form>
<input type="text" name="address" pattern="(?:[0-9a-zA-Z]*(?:[ ,./&'-][0-9a-zA-Z]+)*)?">
<input type="submit">
</form>

请注意,^$ 是默认添加的,但是如果您正在使用一些覆盖 pattern 属性的额外框架,您需要明确地将 anchor 添加到模式中:

^(?:[0-9a-zA-Z]*(?:[ ,./&'-][0-9a-zA-Z]+)*)?$

详细信息:

  • ^ - 字符串的开始
  • (?:[0-9a-zA-Z]*(?:[ ,./&'-][0-9a-zA-Z]*)*)? - 一个可选的非捕获组匹配 1 次或 0 次出现:
    • [0-9a-zA-Z]* - 零个或多个 ASCII 字母/数字
    • (?:[ ,./&'-][0-9a-zA-Z]*)* - 出现 0 次或多次:
      • [ ,./&'-] - 一个空格,,, ., /(没有需要对其进行转义!)、&'-(无需在字符类末尾对其进行转义,但您可以)
      • [0-9a-zA-Z]+ - 一个或多个 ASCII 字母/数字
  • $ - 字符串结尾。

关于javascript - javascript模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44394371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com