Javascript Regex验证以#符号分隔的数字,最多重复4次

rqcrx0a6  于 2023-03-04  发布在  Java
关注(0)|答案(2)|浏览(108)

我需要一个正则表达式的答案分隔#。不幸的是,我找不到一个适当的方法来做到这一点。答案应该在范围1至5。
以下是我的要求:

  • 输入可以为空
  • 输入可以包括1到5的单个数字,之后在每个新数字之前它应该被#分隔。
  • 输入长度最大为9。
  • 输入不能以#符号结束。

一些有效示例:

1
3#4
1#5#4
1#2#3#4
1#2#3#4#5

一些无效示例:

3# // can not end with #
1#2#3#4#5#1 // length more than 9
6 // only numbers 1 to 5

我会很感激任何帮助,因为我是新来的。
我在上面写了一些例子,我现在不明白如何构建正则表达式。

bis0qfac

bis0qfac1#

您可以尝试以下表达式:

/^(?:[1-5](?:#[1-5]){0,4})?$/

1.线^的起点
1.可选(?),非匹配组(?:
1.必须以[1-5]开头
1.然后是0 to 4

  1. #
  2. [1-5]
    1.行结束$
    x一个一个一个一个x一个一个二个x
amrnrhlw

amrnrhlw2#

给你:https://regexr.com/79au1
正则表达式:[1-5](#[1-5]){0,4}

  • [1-5]匹配1到5之间的任意数字
  • 匹配字符#
  • (...){n,m}匹配一组字符至少n次,最多m

注意:这个正则表达式将匹配输入字符串中的任何内容。请小心,因为您可能希望严格验证匹配部分之前没有任何内容。请参见answer of Mr. Polywhirl
奖金(另一个答案未提及):仅匹配此输入,但允许标题和尾随空格^\s*[1-5](#[1-5]){0,4}\s*$

相关问题