JavaScript正则表达式-如何检查逗号分隔的值是否超过三个
我不擅长JavaScript正则表达式,因此需要帮助检查字符串以进行验证 我得到的这些图像名称用逗号分隔:JavaScript正则表达式-如何检查逗号分隔的值是否超过三个,javascript,regex,Javascript,Regex,我不擅长JavaScript正则表达式,因此需要帮助检查字符串以进行验证 我得到的这些图像名称用逗号分隔:justry.jpg、Desert.png、绣球花.gif、水母.jpg、 现在我想检查一下这个正则表达式: 什么是有效的: Chrysanthemum.jpg,Desert.png,Hydrangeas.gif,Jellyfish.jpg,Koala.jpg,Lighthouse.png, 无效的内容: 1. Chrysanthemum.jpg,Desert.png,Hydrangeas
justry.jpg、Desert.png、绣球花.gif、水母.jpg、
现在我想检查一下这个正则表达式:
什么是有效的:
Chrysanthemum.jpg,Desert.png,Hydrangeas.gif,Jellyfish.jpg,Koala.jpg,Lighthouse.png,
无效的内容:
1. Chrysanthemum.jpg,Desert.png,Hydrangeas.gif,
2. Chrysanthemum.jpg,Desert.png,
3. Chrysanthemum.jpg,
只有当逗号分隔值的数量超过3时,验证才会成功。选项1:先计算逗号,然后计算文本
以下是一个简单的方法:
if (/(?:,\s*\S+){3}/.test(yourString)) {
// It matches!
} else {
// Nah, no match...
}
这将检查是否至少有三个逗号后跟可选空格,然后是非空格字符
在中,您可以看到这是如何工作的(存在匹配项)
选项2:检查您是否至少有四张图像 此选项检查您是否至少有四个图像
if (/^\w+\.(?:jpg|png|gif)(?:, \w+\.(?:jpg|png|gif)){3}/.test(yourString)) {
// It matches!
} else {
// Nah, no match...
}
查看中的匹配项下面的正则表达式将验证文件扩展名,逗号后面的空格(最后一个除外)以及逗号分隔的值大于3
^[A-Z][a-z]+\.(?:jpg|png|gif),(?: [A-Z][a-z]+\.(?:jpg|png|gif),){3,}$
如果这些值不是用逗号和空格分隔的,那么您的正则表达式
^[A-Z][a-z]+\.(?:jpg|png|gif),(?:[A-Z][a-z]+\.(?:jpg|png|gif),){3,}$
或
一个简单得多的
^(?:[A-Z][a-z]+\.(?:jpg|png|gif),){4,}$
你确定需要正则表达式吗?试试这个:
var str = "Chrysanthemum.jpg, Desert.png, Hydrangeas.gif, Jellyfish.jpg,";
var length = str.split(',').filter(function(item) { return item != ""; }).length;
if (length > 3) {
...
}
是否仍要分隔并使用每个图像名称?是否需要检查逗号分隔列表中的值(图像名称),还是只需要知道它们的数量?为什么不使用split()?作为奖励-空元素检查-.Hi regex正在工作,但在我的字符串中,图像名称之间没有空格,如
Salvis.jpg,Sumeet.jpg,Jacob.png,Srlawr.png,
,因此没有空格它就不能工作。这是有效的:Salvis.jpg,Sumeet.jpg,Jacob.png,Srlawr.png,
,这对空格无效:Salvis.jpg,Sumeet.jpg,Jacob.png,Srlawr.png,
好的,现在你能解释一下,如果将来我必须检查逗号分隔的值超过5,那么要更改什么?将最后一个{4,}
更改为{5,}
。只需在regex101网站上玩我的regex{5,}
表示从一开始它必须有5个文件名。感谢您的支持:)