Убедитесь, что URL-адрес, введенный в форму, взят с определенного веб-сайта с использованием JavaScript - PullRequest
0 голосов
/ 27 августа 2011

У меня есть сайт, где люди публикуют ссылки из Google+.Я стараюсь, чтобы люди могли публиковать только определенные ссылки из Google Plus.Например, кто-то должен будет опубликовать ссылку типа https://plus.google.com/games/907809777960/params/%22%7B%5C%22encPrms%5C%22%3A%5C%22eyJiYXBpVGlja2V0SWQiOiI4MzFhNGQ0Ny0yYTU4LTQ2OTktYmI1Yy1hN2ExYTAzY2U4ZTMiLCJsYW5kaW5nUGFnZSI6Im5ld3NmZWVkL2JvbnVzYWJsZUZlZWQvbWFydmVsY29tcGxldGUvNTQ3Mjc3LzEzMTQ0NzA0MjUvMCIsInJlZl9pZCI6IjEwOTkyODAzNzUzNzQ2Mjk5NzAxMCIsInRyYWNrIjoibmV3c2ZlZWQtYm9udXNfbWFydmVsQ29tcGxldGUtMCIsInNlbmRfdGltZXN0YW1wIjoiMTMxNDQ3MDQyNyJ9%5C%22%7D%22/source/3.. Я хочу убедиться, что ссылка начинается с или, по крайней мере, содержит https://plus.google.com/games/907809777960/params/,, в противном случае он не будет отправлять ссылку и оповещение.что ссылка недействительна.Код, который у меня пока есть.

<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, поэтому любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 27 августа 2011

это регулярное выражение будет извлекать имя домена из любой строки.в основном он вернет часть, начиная с http: // и т.д.

/((https?|s?ftp|dict|www)(://)?)[A-Za-z0-9.\-]+)/gi

, он обнаружит следующие формы:

наслаждайтесь.

0 голосов
/ 27 августа 2011

edit edit: у вас есть две проблемы, вам нужно сослаться на значение 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>
...