如何从javascript中的段落获取数组中的URL

如何从javascript中的段落获取数组中的URL,javascript,arrays,url,Javascript,Arrays,Url,我想获取数组中javascript中段落或句子中的所有可用URL。例如,检查下面的段落: 请结帐。它有很酷的标志 从上面的字符串中,我们必须得到这两个url的数组。解决方案1:解决方案1,我知道是用空格分割段落,迭代数组,逐个检查url,然后推入url的数组。但是,这是一个耗时的解决方案。是否有更好的解决方案来找到它,或者更高的解决方案是最快且很好的解决方案?谢谢。试试这种方法。它可能需要一些微调 var段落=document.getElementsByTagName('p') var reg



我想获取数组中javascript中段落或句子中的所有可用URL。例如,检查下面的段落: 请结帐。它有很酷的标志


从上面的字符串中,我们必须得到这两个url的数组。

解决方案1:解决方案1,我知道是用空格分割段落,迭代数组,逐个检查url,然后推入url的数组。但是,这是一个耗时的解决方案。

是否有更好的解决方案来找到它,或者更高的解决方案是最快且很好的解决方案?

谢谢。

试试这种方法。它可能需要一些微调

var段落=document.getElementsByTagName('p')
var regex=/(https?:\/\/.*)(\s |$)/g;
var url=[];
变量badLastChars=[“,”,“];
对于(变量i=0;i-1){
url=url.slice(0,url.length-1);
}
console.log(url);
推送(url);
}
}
请结帐http://stackoverflow.com. 它有很酷的标志https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.


另一段https://stackexchange.com. 下面是我正在创建的另一个url:https://mycoolurlexample.com/this/is/an/example

试试这种方法。它可能需要一些微调

var段落=document.getElementsByTagName('p')
var regex=/(https?:\/\/.*)(\s |$)/g;
var url=[];
变量badLastChars=[“,”,“];
对于(变量i=0;i-1){
url=url.slice(0,url.length-1);
}
console.log(url);
推送(url);
}
}
请结帐http://stackoverflow.com. 它有很酷的标志https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.


另一段https://stackexchange.com. 下面是我正在创建的另一个url:https://mycoolurlexample.com/this/is/an/example

这就是你要找的吗

var list = [];
var sentence = "Please checkout http://stackoverflow.com. It has very cool logo https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.";

var result = checkForURL(sentence);

function checkForURL(text) {
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    return text.replace(urlRegex, function (url) {
        return '<a>' + url + '</a>';
    })
}
var number = result.split('<a>');

for (var i = 1; i < number.length; i++) {
        list.push(number[i].split(".</a>")[0]);             
}
alert(list);
var list=[];
var station=“请结帐http://stackoverflow.com. 它有很酷的标志https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.";
var结果=checkForURL(句子);
函数checkForURL(文本){
var urlRegex=/(https?:\/\/[^\s]+)/g;
返回text.replace(urlRegex,函数(url){
返回“”+url+“”;
})
}
变量编号=结果分割(“”);
对于(变量i=1;i
这就是你要找的吗

var list = [];
var sentence = "Please checkout http://stackoverflow.com. It has very cool logo https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.";

var result = checkForURL(sentence);

function checkForURL(text) {
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    return text.replace(urlRegex, function (url) {
        return '<a>' + url + '</a>';
    })
}
var number = result.split('<a>');

for (var i = 1; i < number.length; i++) {
        list.push(number[i].split(".</a>")[0]);             
}
alert(list);
var list=[];
var station=“请结帐http://stackoverflow.com. 它有很酷的标志https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.";
var结果=checkForURL(句子);
函数checkForURL(文本){
var urlRegex=/(https?:\/\/[^\s]+)/g;
返回text.replace(urlRegex,函数(url){
返回“”+url+“”;
})
}
变量编号=结果分割(“”);
对于(变量i=1;i
您可能希望拆分
://
,以获得一个较小的数组进行迭代

例如:

演示

HTML

<p id='p'>
Please checkout http://stackoverflow.com. It has very cool logo https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.
</p>
<h4>
URLs
</h4>
<ol id='results'>

</ol>

请结帐http://stackoverflow.com. 它有很酷的标志https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.

网址
Javascript

findUrls();

function findUrls(){
  var p = document.getElementById('p');
  var res = document.getElementById('results');
  var pStr = p.innerText;
  var parts = pStr.split(/:\/\//);
  if (parts.length < 2) 
    return;
  for (var i = 1 ; i < parts.length ; i++){ 
    var part = parts[i];
    var lastPart = parts[i-1];
    if (lastPart.length < 4 )
      continue;
    if (lastPart.length >= 4 && lastPart.substr(-4) == 'http')
      part = 'http://' + part;
    else if (lastPart.length >= 5 && lastPart.substr(-5) == 'https')
      part = 'https://' + part;    
    var firstSpace = part.indexOf(' ');
    if (firstSpace > -1)
      part = part.substring(0, firstSpace);
    var lastChar = part.charAt(part.length - 1);
    if (lastChar == ',' || lastChar == '.' /* || ... */)
      part = part.substring(0,part.length - 1);
    res.innerHTML += '<li>' + part + '</li>'; // or push part to some result array  
  }
}
findUrls();
函数findUrls(){
var p=document.getElementById('p');
var res=document.getElementById('results');
var pStr=p.innerText;
var parts=pStr.split(/:\/\/);
如果(零件长度<2)
返回;
对于(var i=1;i=4&&lastPart.substr(-4)='http')
部分='http://'+部分;
else if(lastPart.length>=5&&lastPart.substr(-5)==“https”)
部分='https://'+部分;
var firstSpace=part.indexOf(“”);
如果(第一空间>-1)
部分=部分子字符串(0,第一个空格);
var lastChar=part.charAt(part.length-1);
如果(lastChar==','| | lastChar=='。/*| |…*/)
部分=部分子字符串(0,部分长度-1);
res.innerHTML+='
  • '+part+'
  • ';//或将part推送到某个结果数组 } }
    您可能希望拆分
    ://
    ,以获得一个较小的数组进行迭代

    例如:

    演示

    HTML

    <p id='p'>
    Please checkout http://stackoverflow.com. It has very cool logo https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.
    </p>
    <h4>
    URLs
    </h4>
    <ol id='results'>
    
    </ol>
    

    请结帐http://stackoverflow.com. 它有很酷的标志https://d13yacurqjgara.cloudfront.net/users/1249/screenshots/2247671/stackoverflow.png.

    网址
    Javascript

    findUrls();
    
    function findUrls(){
      var p = document.getElementById('p');
      var res = document.getElementById('results');
      var pStr = p.innerText;
      var parts = pStr.split(/:\/\//);
      if (parts.length < 2) 
        return;
      for (var i = 1 ; i < parts.length ; i++){ 
        var part = parts[i];
        var lastPart = parts[i-1];
        if (lastPart.length < 4 )
          continue;
        if (lastPart.length >= 4 && lastPart.substr(-4) == 'http')
          part = 'http://' + part;
        else if (lastPart.length >= 5 && lastPart.substr(-5) == 'https')
          part = 'https://' + part;    
        var firstSpace = part.indexOf(' ');
        if (firstSpace > -1)
          part = part.substring(0, firstSpace);
        var lastChar = part.charAt(part.length - 1);
        if (lastChar == ',' || lastChar == '.' /* || ... */)
          part = part.substring(0,part.length - 1);
        res.innerHTML += '<li>' + part + '</li>'; // or push part to some result array  
      }
    }
    
    findUrls();
    函数findUrls(){
    var p=document.getElementById('p');
    var res=document.getElementById('results');
    var pStr=p.innerText;
    var parts=pStr.split(/:\/\/);
    如果(零件长度<2)
    返回;
    对于(var i=1;i=4&&lastPart.substr(-4)='http')
    部分='http://'+部分;
    else if(lastPart.length>=5&&lastPart.substr(-5)==“https”)
    部分='https://'+部分;
    var firstSpace=part.indexOf(“”);
    如果(第一空间>-1)
    部分=部分子字符串(0,第一个空格);
    var lastChar=part.charAt(part.length-1);
    如果(lastChar==','| | lastChar=='。/*| |…*/)
    零件=pa