0

如果字符串仅包含以下方式允许的字符,我正在尝试编写一个 Java Script 正则表达式来匹配 -

  1. 字符串中只能包含 0、1、x 或逗号 (,)。
  2. 每个数字(0、1 或“x”)应以逗号 (,) 分隔
  3. 应至少有一个逗号分隔值(即“0,1”或“0,x,1”)
  4. 逗号应始终由数字或“x”包围(即“,”或“,0”无效)

是否可以为这种情况编写正则表达式?我可以使用 java script string split 来做到这一点,但这对我来说并不优雅。希望有人可以帮助提出上述条件的正则表达式。

4

1 回答 1

3

尽管我同意@SomeKittens 的观点,即您应该展示您尝试过的内容,但您至少提供了一个相当详细的规范。根据我对它的理解,你可以使用这样的东西:

var isValid = /^(?:[01x],)+[01x]$/.test(str);

符合以下任何一项:

  • 0,1
  • 0,1,1
  • 0,x,0,0

这些都不是:

  • 0
  • ,
  • 0,
  • 0,1,
  • ,1
  • 0,,1
  • 0,X(大写 X)

如果您希望除了小写之外还允许匹配大写 X,请将/i标志添加到正则表达式以进行不区分大小写的匹配。

于 2012-07-17T16:39:19.500 回答