JavaScript Regex - 如何检查逗号分隔值超过三个

时间:2014-07-25 08:26:15

标签: javascript regex

我对JavaScript Regex并不擅长,所以我需要帮助检查我的字符串以进行验证。

我将这些图片名称用逗号分隔:Chrysanthemum.jpg,Desert.png,Hydrangeas.gif,Jellyfish.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时才能成功验证。

3 个答案:

答案 0 :(得分:1)

选项1:计算文字后面的逗号

这是一个简单的方法:

if (/(?:,\s*\S+){3}/.test(yourString)) {
    // It matches!
} else {
    // Nah, no match...
}

这将检查至少有三个逗号后跟可选空格,然后是非空格字符。

the Regex Demo 中,您可以看到它的工作原理(匹配)。


选项2:检查您至少有四张图像

此选项检查您至少有四张图片。

if (/^\w+\.(?:jpg|png|gif)(?:, \w+\.(?:jpg|png|gif)){3}/.test(yourString)) {
    // It matches!
} else {
    // Nah, no match...
}

查看 the Regex Demo 中的匹配项。

答案 1 :(得分:1)

以下正则表达式将验证文件名扩展名,逗号后的空格除了最后一个,并且逗号分隔值大于3,

^[A-Z][a-z]+\.(?:jpg|png|gif),(?: [A-Z][a-z]+\.(?:jpg|png|gif),){3,}$

DEMO

如果值不是用逗号和空格分隔,那么你的正则表达式就是,

^[A-Z][a-z]+\.(?:jpg|png|gif),(?:[A-Z][a-z]+\.(?:jpg|png|gif),){3,}$

DEMO

OR

更简单的一个,

^(?:[A-Z][a-z]+\.(?:jpg|png|gif),){4,}$

DEMO

答案 2 :(得分:0)

你确定你需要正则表达式吗?试试这个:

var str = "Chrysanthemum.jpg, Desert.png, Hydrangeas.gif, Jellyfish.jpg,";
var length = str.split(',').filter(function(item) { return item != ""; }).length;
if (length > 3) {
  ...
}