Javascript匹配 - 包含2个关键字的所有内容,忽略1个关键字

时间:2017-12-05 16:50:20

标签: javascript regex match

我想要包含一个字符串,如果它包含' jpg'或者' png'但如果字符串包含' http'。

,请将其排除

我一直在尝试以下内容,但如果它同时包含http和png或者jpg,它仍然包含字符串:

myString.match(/(?!http)(jpg|png)/i)

预期输入为http://s3-eu-west-1.amazonaws.com/bucket/1512491455764.png?Signature=signature

由于它包含http和png,因此该字符串将被忽略/从正则表达式返回false

1 个答案:

答案 0 :(得分:1)

您可以使用

/^(?!.*http).*(jpg|png)/i

<强>详情

  • ^ - 字符串开头
  • (?!.*http) - 在允许当前位置右侧的换行符以外的任何0 +字符后,不允许http
  • .* - 除当前位置右侧的换行符之外的任何0 +字符
  • (jpg|png) - jpgpng