将Javascript数组输出到DIV中

将Javascript数组输出到DIV中,javascript,regex,url,output,textarea,Javascript,Regex,Url,Output,Textarea,我有一个函数,它显示/应该从textarea输出URL(它应该只列出URL)。然而,目前它只显示最后一个结果/url。如何输出所有数组/URL(可能是一个div) 我的代码: <textarea id="textarea"></textarea> <div id="converted_url"></div> <script type="text/javascript"> $("#textarea").on("change keyup

我有一个函数,它显示/应该从textarea输出URL(它应该只列出URL)。然而,目前它只显示最后一个结果/url。如何输出所有数组/URL(可能是一个div)

我的代码:

<textarea id="textarea"></textarea>

<div id="converted_url"></div>

<script type="text/javascript">
$("#textarea").on("change keyup paste", function() {
    var text=document.getElementById("textarea").value;
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    text.replace(urlRegex, function(url) {
    var link = '<div><a href="' + url + '">' + url + '</a></div>';
    document.getElementById("converted_url").innerHTML=link
    })
});
</script>

$(“#textarea”)。在(“更改键控粘贴”,函数()上{
var text=document.getElementById(“textarea”).value;
var urlRegex=/(https?:\/\/[^\s]+)/g;
text.replace(urlRegex,函数(url){
var-link='';
document.getElementById(“转换的url”).innerHTML=link
})
});
当前输出(使用此代码):

希望(应该):

我不希望有附加结果,结果不会随着文本区域的更改而更新。即:

无论何时更新结果区域,都会覆盖以前的结果。您需要附加到它

仅供参考:
input
事件是一个广泛的事件,它将在元素有任何类型的输入时触发。你可能会发现它比听多个事件更简单、更直接。此外,由于您使用的是JQuery,所以您最好一致地使用它来获取所有DOM引用

let result=$(“#转换的_url”);
$(“#textarea”)。在(“输入”,函数()上{
result.html(“”;//重置输出
var urlRegex=/(https?:\/\/[^\s]+)/g;
$(“#textarea”).val().replace(urlRegex,函数(url){
var-link='';
//将新信息附加到现有信息
结果。追加(链接);
});
});
textarea{宽度:200px;高度:50px;}

(只需在框中键入任何内容即可触发事件。)
http://google.com 废话http://facebook.com
无论何时更新结果区域,都会覆盖以前的结果。您需要附加到它

仅供参考:
input
事件是一个广泛的事件,它将在元素有任何类型的输入时触发。你可能会发现它比听多个事件更简单、更直接。此外,由于您使用的是JQuery,所以您最好一致地使用它来获取所有DOM引用

let result=$(“#转换的_url”);
$(“#textarea”)。在(“输入”,函数()上{
result.html(“”;//重置输出
var urlRegex=/(https?:\/\/[^\s]+)/g;
$(“#textarea”).val().replace(urlRegex,函数(url){
var-link='';
//将新信息附加到现有信息
结果。追加(链接);
});
});
textarea{宽度:200px;高度:50px;}

(只需在框中键入任何内容即可触发事件。)
http://google.com 废话http://facebook.com
我编写此代码是为了解决您的问题

如果您对代码有任何疑问,请告诉我

var-urlsContainer=$(“#转换的_-url”);
var urlsTextArea=$(“#textarea”);
$(“#textarea”)。在(“输入”,函数(){
var text=urlsTextArea.val();
var url=[];
var raw_url=text.split('\n');
对于(x=0;x

我编写此代码是为了解决您的问题

如果您对代码有任何疑问,请告诉我

var-urlsContainer=$(“#转换的_-url”);
var urlsTextArea=$(“#textarea”);
$(“#textarea”)。在(“输入”,函数(){
var text=urlsTextArea.val();
var url=[];
var raw_url=text.split('\n');
对于(x=0;x


您的
.replace()
回调始终完全覆盖
内容。但据我所知,它没有覆盖太多内容。它只是输出最后一个url…您知道如何获取所有url吗?请在调用
.replace()
之前清除
,而不是更新
。innerHTML
将url累积为字符串。然后在
.replace()
之后,将
.innerHTML
设置为字符串。很抱歉,我不明白。。。你能把代码发给我吗?你的
.replace()
回调总是完全覆盖
内容。但据我所知,它并没有覆盖太多内容。它只是输出最后一个url…您知道如何获取所有url吗?请在调用
.replace()
之前清除
,而不是更新
。innerHTML
将url累积为字符串。然后在
.replace()
之后,将
.innerHTML
设置为字符串。很抱歉,我不明白。。。你能把密码发给我吗?谢谢你的密码。但是有个问题。。。它将显示复制输出,当我清除文本区域时,将显示最后一个结果…@brox您只需添加一行来清除输出元素。更新的答案显示了这一点。完美正是我所期待的。非常感谢。虽然我有个问题。您能否检测一个url是否出现多次,并将其汇总/合并,只显示一次url。例如:TEXT:blah blah google.com blah blah google.com blah blah blah facebook.com输出:google.com,facebook。com@brox是的,但这是一个单独的问题