【问题标题】:Regex match 3 characters followed by integers正则表达式匹配 3 个字符后跟整数
【发布时间】:2018-06-30 16:39:23
【问题描述】:

我是正则表达式的新手,我需要以下模式的正则表达式:

  1. 字符串的格式必须为“TCK#”。 TCK 后跟整数。

  2. 例如,这是可以接受的 TCK123。这是不可接受的 123

这是我当前的正则表达式:

输入 class="form-control" required="true" type="text" name="TCKInput" 模式="^[TCK][0-9]$">

以我目前的代码,当用户输入TCK123时,是不能接受的,这不是我要找的

【问题讨论】:

  • 阿曼做对了。缺少 + 是最大的问题
  • 另外,^[TCK] 表示 3 个字符 T、C 或 K 中的任何一个作为第一个字符。^[T][C][K] 在开始时也需要 - 这将是一个替代解决方案
  • 使用pattern="TCK[0-9]+"

标签: regex


【解决方案1】:

更改为以下正则表达式:

^(?:TCK)[0-9]+$

演示:https://regex101.com/r/h9V7n1/1

您正在使用的现有正则表达式的更改:

1) 您在TCK 周围使用[],这意味着正则表达式必须匹配 此括号内的任何值。因为你必须匹配TCK 照原样改成(,)

2) 你没有在[0-9] 之后提到+,这意味着一个 发生将被匹配。但是,如果您提及+,它会 匹配一个或多个匹配项

【讨论】:

  • 请注意(?:TCK) = TCK。此外,由于在 HTML5 模式属性中使用了模式,您可以省略 ^$,它们只会使正则表达式匹配更慢。使用pattern="TCK[0-9]+"
【解决方案2】:

如果您想要全部 3 个字母:TCK,然后至少有一个或多个数字,那么试试这个:

^TCK\d+$

如果您使用[TCK],它将只接受一个T、一个C一个K

演示

此演示发送到实时测试服务器,因此成功提交数据将导致该服务器响应

<form id='main' action='https://httpbin.org/post' method='post'>

  <input class="form-control" required="true" type="text" name="TCKInput" pattern="^TCK\d+$">
  <input type='submit'>

</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-31
    • 2023-02-01
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    相关资源
    最近更新 更多