如何创建正则表达式javascript函数来匹配某些字符串组合?

时间:2014-10-23 12:09:34

标签: javascript regex

我只是有一个问题,要创建一个匹配此字符串组合的函数。 第一部分包含I,II,III或IV。然后用/字符分隔。然后是A,B,C或D.

所以它想要III / A,IV / B,I / D.

任何想法如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

这实际上是一个很好的教学机会。

首先,您需要^$ anchors以确保整个字符串与正则表达式匹配。

/^(regex)$/

现在,要匹配IIII,您可以使用{m,n} quantifier

/^I{1,3}$/

IV虽然不同。您需要允许两个alternative matches。但是为了确保交替仅包含文本而不包含锚点,您需要将其括在non-capturing group中:

/^I(?:I{0,2}|V)$/

其余的很简单。 \/与斜杠匹配,由于下面的四个备选项都只是一个字符长度,因此您不需要使用替换,但可以使用character class

/^I(?:I{0,2}|V)\/[ABCD]$/

答案 1 :(得分:2)

您可以使用

.match("(I|II|III|IV)/[ABCD]")

答案 2 :(得分:1)

/(I|II|III|IV)(\/)([A-D])/g 
  1. 第一捕获组(I | II | III | IV) 第一选择:我 我匹配字面上的字符(区分大小写) 第二种选择:II II字面匹配字符II(区分大小写) 第三种选择:III III字面匹配字符III(区分大小写) 第四种选择:IV IV字面匹配字符IV(区分大小写)

  2. 第二捕获组(/) /匹配字符/字面

  3. 第三捕获组([A-D]) [A-D]匹配下面列表中的单个字符 A-D A和D之间范围内的单个字符(区分大小写) g修饰符:全局。所有比赛(首场比赛不返回)