gpt4 book ai didi

javascript - 正则表达式将数字与可能的字母匹配

转载 作者:行者123 更新时间:2023-11-28 12:34:48 24 4
gpt4 key购买 nike

我需要与JS匹配:

  • 一个数字,
  • 后面可能跟一个(或两个)字母,
  • 并且可以用空格分隔
  • 或连字符

例如:

23 
4545a
1B
554 cs
34-S

正则表达式不是我的强项,所以我只有这个......

^[0-9A-Za-z ]+$

更新:

^(0-9A-Za-z )+$

最佳答案

Aaaaand,我的答案是其他答案的混合体。 :)

/^\d+[ -]?[a-z]{0,2}$/i
  • \d+ = 1 位或更多位
  • [ -]? = 可选的空格字符(注意:仅限空格,而不是“空白”)或破折号
  • [a-z]{0,2} = 1 或 2 个字母字符(注意:目前仅小写,但请继续阅读......)
  • 模式末尾的 i 使其不区分大小写,因此 [a-z] 将匹配大写或小写字母

编辑 - 好的,我发现所有答案都有错误。哈哈,因为 alpha 模式允许末尾有 0 个字符,并且空格和破折号是可选的,所以到目前为止我们提供的正则表达式会导致以下测试数据误报:123-456 <--- with a space at the end

可以通过在值上使用 $.trim() 来解决第二个问题(如果您要测试的内容允许这样做),但第一个问题不能。

所以。 。 。这给我们带来了一个新的正则表达式来处理这些情况:

/^\d+([ -]?[a-z]{1,2})?$/i
  • \d+ = 1 位或更多位
  • [ -]? = 可选的空格字符(注意:仅限空格,而不是“空白”)或破折号
  • [a-z]{1,2} = 必须有 1 或 2 个字母字符(注意:目前仅小写,但请继续阅读......)
  • 最后两个模式周围的 ( . . . )? 强制空格或破折号仅在数字后面有效,IF 它们之后是 1 或 2 个字母。 。 。但是,整个组作为一个整体是可选的。
  • 模式末尾的 i 使其不区分大小写,因此 [a-z] 将匹配大写或小写字母

他们更新了正则表达式,匹配所有示例,但在我提到的两个无效情况下也失败了。

注意:如果数字后跟一个空格应该被视为有效,则在测试之前 trim 该值也将使该情况通过。

关于javascript - 正则表达式将数字与可能的字母匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256190/

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