从Javascript搜索Textarea中的链接

时间:2011-10-12 12:21:26

标签: javascript forms search hyperlink

我有一个非常简单的问题。我只想搜索textarea中是否包含任何链接。

<script type="text/javascript">
function valid()
{
var txtt=document.forms["forma"]["txtarea"].value;
var ss=txtt.search("href");
if (ss == "0"){
alert("You've link in your textarea! We don't allow that");
return false;
}
}
</script>

<form action="" method="POST" onsubmit="return valid()" name="forma">
<textarea name="txtarea"></textarea>
<input type="submit" />
</form>

示例数据。我希望上面不要传递并返回false。

 Hi! I bookmarked your site http://www.myspamdata.com

<a href="http://myspam.com">My spam link</a>

2 个答案:

答案 0 :(得分:0)

我认为这个解决方案足以解决您的问题:

var txtt=document.forms["forma"]["txtarea"].value
var ss=txtt.search('http://');
if(ss != -1) {
    alert("...");
    return false;
}

您只需查找字符串“http://”。但这种解决方案存在一个问题。你可以轻松通过这样的Javascript“保护”。因此,您还需要检查服务器代码中的链接并拒绝它们。

答案 1 :(得分:0)

你可以使用这样的正则表达式:

var regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;

并验证您的输入字符串,以查看是否指定了任何此类链接。

例如,使用以下方法搜索它:

var regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
var exists = text.search(regex);