【问题标题】:Javascript : Detect if a String contain url imageJavascript:检测字符串是否包含 url 图像
【发布时间】:2015-05-26 08:44:23
【问题描述】:

我有以下字符串:

var str = "Hello, i would like to show this image : http://logonoid.com/images/stack-overflow-logo.png" ;

我想创建一个函数检测图片网址的存在并返回两件事:

  • 没有图片网址的新字符串
  • 包含在字符串中找到的图像 url 的数组。

我该怎么做?

【问题讨论】:

  • 你有没有尝试过?看String.prototype.match()
  • 您在此处发布的网址格式是否已修复一些文本然后是网址
  • 不,图片的url可以在字符串中的任何位置
  • 是的,您可以使用正则表达式来做到这一点。我看到您为此添加了一个标签,但您忘记添加您认为可以完成的原因。

标签: javascript regex parsing


【解决方案1】:

你可以试试这样,我正在检查图像文件扩展名

var str = "Hello, i would like to show this image : http://logonoid.com/images/stack-overflow-logo.gif" ;
var test = (/\.(gif|jpg|jpeg|tiff|png)$/i).test(str)

如果找到匹配,它将返回true,否则返回false

Fiddle

【讨论】:

    【解决方案2】:

    你可以使用以下来匹配:

    (https?:[^\s]+)
    
    • 第 1 组将给出 url 列表。您可以将它们替换为 '' 空字符串以获取新字符串。

    DEMO

    【讨论】:

      【解决方案3】:

      你熟悉正则表达式吗?因为你问的事情很简单: 检测 URL 的正则表达式是

      ^(http|https)://
      

      在 Javascript 中是:

      str.match(^(http|https)://);
      

      现在由您来决定如何保存正确的输出。

      【讨论】:

        【解决方案4】:

        简单的方法可能是这样的

        var str = "Hello, i would like to show this image : http://logonoid.com/images/stack-overflow-logo.png" ;
        console.log(str.includes(":"));
        
        
        if(str.includes(":") && ( (str.includes("http") || str.includes("https")) )){
          var newOutput = str.split(":");
          for(var i in newOutput){
          console.log("[" + i + "]: " + newOutput[i]);
          }
        
          var message= newOutput[0];
          var urlImage= newOutput[1] + newOutput[2];
        
          console.log("message: " + message +" , URL: " + urlImage);
        }else{
         console.log("no URL find");
        }
        

        你可以为那个“if”使用匹配,它看起来会更好:o)

        【讨论】:

          【解决方案5】:

          我认为的最短方法:

          console.log(newVal.match(/\.(jpeg|jpg|png|gif)/g) != null);
          

          如果找到匹配项,则返回 true 否则返回 false

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-02
            • 2023-03-27
            • 1970-01-01
            • 2021-02-28
            相关资源
            最近更新 更多