如何从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