我想从asp.net应用程序中的文本框中获取url链接
当我输入文本时,我有textarea,如果它包含www.google.com或http://google.com之类的链接,那么我想从textarea值获取每个链接或第一个链接。
如何使用Jquery或javascript语言实现。
当我在textarea控件中输入单词/文本时,我想获得每个或第一个链接。
在这里,我写了一些代码。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Test Page </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div class="innerWrap">
<textarea autocomplete="off" id="txtUpdate" style="height: 48px; width: 408px;" >
</textarea>
</div>
</div>
<script>
$(document).ready(function(){
$('#txtUpdate').keyup(function() {
getURLfromText(jQuery.trim($(this).val()));
});
});
function getURLfromText(objTxt)
{
// code
}
</script>
</form>
</body>
</html>
请给我正确的解决方案。 也应该是我复制并粘贴一些文字的作品。 怎么可能。?
已修改
输入
Down to Earth: Tracy Caldwell Dyson www.google.com
After spending nearly six months in space,
she is back on the ground, with two expeditions
under her belt. http://bit.ly/dEpNHo
输出
Array linkarray[]=new Array();
linkarray[0]="www.google.com";
linkarray[1]="http://bit.ly/dEpNHo";
答案 0 :(得分:2)
你应该在Javascript中使用正则表达式。从这里开始看例如: Detect URLs in text with JavaScript
答案 1 :(得分:1)
我在jsfiddle上发布了一个简短的例子。我认为这是你要找的那种东西?包含url的正则表达式可能接受了许多你不想要的值。您可以为您喜欢的表达式切换它。
脚本基本上取textarea的值,在所有空格上拆分,然后测试数组的每个值,看看它是否是使用正则表达式的URL。
HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Test Page </title>
</head>
<body>
<form id="form1" runat="server">
<div class="innerWrap">
<textarea autocomplete="off" id="txtUpdate" style="height: 48px; width: 408px;" ></textarea>
</div>
</form>
<p>Your urls, sir:</p>
<ul id="theurls">
<li>:)</li>
</ul>
</body>
</html>
Javacript:
$(document).ready(function() {
$('#txtUpdate').keyup(function() {
getURLfromText($.trim($(this).val()));
});
});
function getURLfromText(objTxt) {
var urlpatt = new RegExp(/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi);
var objArray = objTxt.split(/\s/g);
$('#theurls').text('');
$.each(objArray, function(key, value) {
var result = value.match(urlpatt);
if (result !== null) {
$('<li>' + result + '</li>').appendTo('#theurls');
}
});
}