【问题标题】:JavaScript Regex - How to check comma separated values are more than threeJavaScript Regex - 如何检查逗号分隔的值是否超过三个
【发布时间】:2014-07-25 08:26:15
【问题描述】:

我不擅长 JavaScript 正则表达式,所以我需要帮助检查我的字符串以进行验证。

我得到这些图像名称用逗号分隔: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 时,验证才会成功。

【问题讨论】:

标签: javascript regex


【解决方案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

一个更简单的,

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

DEMO

【讨论】:

  • 嗨,正则表达式正在工作,但在我的字符串中,图像名称之间没有空格,例如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 网站上使用我的正则表达式即可。 {5,} 表示从一开始就必须有 5 个文件名。
  • 感谢您的支持:)
【解决方案2】:

选项 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 中的匹配项。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2013-02-23
      相关资源
      最近更新 更多