Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript在文本区域中搜索链接_Javascript_Forms_Search_Hyperlink - Fatal编程技术网

从Javascript在文本区域中搜索链接

从Javascript在文本区域中搜索链接,javascript,forms,search,hyperlink,Javascript,Forms,Search,Hyperlink,我有一个非常简单的问题。我只想搜索文本区域中是否包含任何链接 <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

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

<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 或


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

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

您只需查找字符串http://。但这种普遍的解决方案有一个问题。您可以轻松地绕过这些Javascript保护。因此,您也需要检查服务器代码中的链接并拒绝它们。

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

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

您只需查找字符串http://。但这种普遍的解决方案有一个问题。您可以轻松地绕过这些Javascript保护。因此,您也需要检查服务器代码中的链接并拒绝它们。

您可以使用如下正则表达式:

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

并对照它验证输入字符串,以查看是否指定了任何此类链接

例如,使用以下命令搜索它:

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

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

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

并对照它验证输入字符串,以查看是否指定了任何此类链接

例如,使用以下命令搜索它:

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

您需要在服务器上强制执行此限制。垃圾邮件机器人根本不执行JavaScript。@ThiefMaster-虽然这可能是个好建议,但低估垃圾邮件机器人是不明智的!您需要在服务器上强制执行此限制。垃圾邮件机器人根本不执行JavaScript。@ThiefMaster-虽然这可能是个好建议,但低估垃圾邮件机器人是不明智的!您的代码实际上很好看,但这不起作用。当你说它不起作用时,什么东西不起作用,你是如何使用它的?我只是把它放在这里var ss=txtt.search/\bhtps?| ftp | file:\/\/[-A-Z0-9+&@\/%?=~~|!:,.;]*[-A-Z0-9+&\/%=~|]/I;像这样使用它:var ss=txtt.search/\bhttps?| ftp | file:\/[-A-Z0-9+&@\/%?=~~~|!:,.;]*[-A-Z0-9+&\/%=~|]/ig。我还将其添加到了我的答案中。如果spambot不执行javascript,和/或只是将copy/pass www.myspamsite.com放入您的地址栏?您的代码实际上很好看,但这不起作用。当你说它不起作用时,什么东西不起作用,你是如何使用它的?我只是把它放在这里var ss=txtt.search/\bhtps?| ftp | file:\/\/[-A-Z0-9+&@\/%?=~~|!:,.;]*[-A-Z0-9+&\/%=~|]/I;像这样使用它:var ss=txtt.search/\bhttps?| ftp | file:\/[-A-Z0-9+&@\/%?=~~~|!:,.;]*[-A-Z0-9+&\/%=~|]/ig。我还把它添加到了我的答案中。如果spambot不执行javascript,和/或只是将copy/pass www.myspamsite.com放入你的地址栏中?谢谢,这很有效。实际上我的错误是,如果ss==0,我就这么做了。我不知道这可能是什么,如果找到的话德威尔,我应该在Khapay.com上写一篇关于StackOverFlow的博客。Stack说投票需要15个声望点击这个框来解散谢谢,这很有效。实际上我的错误是,如果ss==0,我就这么做了。我不知道这可能是什么,如果找到的话德威尔,我应该在Khapay.com上写一篇关于StackOverFlow的博客。Stack说投票需要15分钟点击此框即可取消