我对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时才能成功验证。
答案 0 :(得分:1)
这是一个简单的方法:
if (/(?:,\s*\S+){3}/.test(yourString)) {
// It matches!
} else {
// Nah, no match...
}
这将检查至少有三个逗号后跟可选空格,然后是非空格字符。
在 the Regex Demo 中,您可以看到它的工作原理(匹配)。
此选项检查您至少有四张图片。
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,}$
如果值不是用逗号和空格分隔,那么你的正则表达式就是,
^[A-Z][a-z]+\.(?:jpg|png|gif),(?:[A-Z][a-z]+\.(?:jpg|png|gif),){3,}$
OR
更简单的一个,
^(?:[A-Z][a-z]+\.(?:jpg|png|gif),){4,}$
答案 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) {
...
}