验证表单中输入的URL是否来自使用javascript的特定网站

验证表单中输入的URL是否来自使用javascript的特定网站,javascript,forms,validation,url,Javascript,Forms,Validation,Url,我有一个网站,人们在那里发布来自Google+的链接。我试图确保人们只能发布来自Google plus的特定链接。例如,有人需要发布一个链接,如 . 我想确保链接以开头或至少包含,如果不是,它将不会提交链接并警告链接无效。到目前为止,我掌握的代码是 <script type="text/javascript" language="JavaScript"> function checkForm(theForm) { if (form.bonuslink.indexOf("https

我有一个网站,人们在那里发布来自Google+的链接。我试图确保人们只能发布来自Google plus的特定链接。例如,有人需要发布一个链接,如 . 我想确保链接以开头或至少包含,如果不是,它将不会提交链接并警告链接无效。到目前为止,我掌握的代码是

<script type="text/javascript" language="JavaScript"> 
function checkForm(theForm) {
if (form.bonuslink.indexOf("https://plus.google.com/games/907809777960/params/") == -1)
    { alert('You can only enter authentic Google + links'); return false; }             
else { 
return true; }
}
</script>
<form action="submitbonus.php" onsubmit="return checkForm(this);" method="post">
 Bonus Link: <input name="bonuslink" type="text" size="40" />  <input name="Submit" type="submit" value="Submit Bonus" /><br />
</form>

由于某种原因,我不能让它工作。无论键入什么内容,每次都会提交。我对javascript不太熟悉,因此如果有任何帮助,我将不胜感激

编辑:您有两个问题需要引用bonuslink值而不是DOM元素本身,并且需要将其作为“theForm”而不是“form”的成员调用,因为这就是您所称的参数。除此之外,一切都应该很好

<script type="text/javascript" language="JavaScript"> 
function checkForm(theForm) {
    if (theForm.bonuslink.value.indexOf("https://plus.google.com/games/907809777960/params/") == -1){ 
        alert('You can only enter authentic Google + links'); 
        return false; 
    } else { 
        return true;
    }
}
</script>
<form action="submitbonus.php" onsubmit="return checkForm(this);" method="post">
 Bonus Link: <input name="bonuslink" type="text" size="40" />  <input name="Submit" type="submit" value="Submit Bonus" /><br />
</form>

此正则表达式将从任何字符串中提取域名。 基本上,它将返回从http://etc开始的部分

/((https?|s?ftp|dict|www)(://)?)[A-Za-z0-9.\-]+)/gi
它将检测以下形式:

dict://www.google.com www.google.com
享受。

indexOf:如果要搜索的值从未出现,则此方法返回-1。我在字段中放置-1而不是0的位置执行了此操作,但该操作也有效。使用==进行比较。我累了,但没用。我不知道我是不是查错了表格还是怎么了。它似乎在提交并完全避免javascript调用。我也更新了问题中的代码。您是否附加了要提交的事件处理程序?我完全复制了您的代码,但无论我键入什么,它仍在提交。你可以在这里查看我正在工作的网站。抱歉,我写了它,但我没有添加它,您需要将bonuslink更改为bonuslink.value,我更新了代码