尝试验证从A到字母L的字母逗号列表,全部大写。我可能会写一些东西来循环列表,并确保每个项目只有A-L的一个字母,但我更喜欢使用正则表达式。这可能吗?
有效:
A, G, F
无效:
Ab, G, F, Car
答案 0 :(得分:1)
您可以使用此正则表达式验证以逗号分隔的字母A-L
的输入:
/^[A-L](?:\s*,\s*[A-L])*$/
<强>解体:强>
^ # 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])+$
每个项目只允许一个字符,大写,空格可选,无结尾逗号。
感谢您的任何其他答案,我相信有很多方法可以实现这一目标。
答案 2 :(得分:0)
你为什么放弃数组操作?他们可能很优雅。
'A, G, F'.split(', ').every(x => x.length === 1 && x >= 'A' && x <= 'L')