使用javascript正则表达式验证每个列表项的一个字母字母的逗号列表

时间:2016-04-26 21:00:38

标签: javascript regex

尝试验证从A到字母L的字母逗号列表,全部大写。我可能会写一些东西来循环列表,并确保每个项目只有A-L的一个字母,但我更喜欢使用正则表达式。这可能吗?

有效:

A, G, F

无效:

Ab, G, F, Car

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式验证以逗号分隔的字母A-L的输入:

/^[A-L](?:\s*,\s*[A-L])*$/

RegEx Demo

<强>解体:

^          # line start
[A-L]      # match letters [A-L]
(?:        # start non-capturing group
  \s*      # match 0 or more white-spaces
  ,        # match a comma
  \s*      # match 0 or more white-spaces
  [A-L]    # match letters [A-L]
)*         # end non-capturing group, * makes this group match 0 or more times
$          # line end

答案 1 :(得分:0)

我在发布此内容后不久就回答了我自己的问题。以下正则表达式有效:

^(?!,)(,?\s?[A-L])+$

每个项目只允许一个字符,大写,空格可选,无结尾逗号。

感谢您的任何其他答案,我相信有很多方法可以实现这一目标。

regex tester

答案 2 :(得分:0)

你为什么放弃数组操作?他们可能很优雅。

'A, G, F'.split(', ').every(x => x.length === 1 && x >= 'A' && x <= 'L')