我有一个非常简单的问题。我只想搜索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>
答案 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);