1

我正在使用 wordpress,我有一个需要验证的表单。我有一个输入字段要检查以确保它是有效的 youtube 网址。我发现这个漂亮的小方法使用 jquery ..

  $("input#video_url").change(function (){
    var matches = $(this).val().match(/^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/);
    if (matches) {
      $(".video-validation").append("<span>Valid</span>");
     } else {
      $(".video-validation").append("<span>This is not a valid youtube url</span>");
     }
  });

但后来我读到这样的验证需要用 php 完成,这样就不能在客户端进行更改。

我一直在寻找某种类型的明确教程,但找不到。所以我的问题是:

如何在我的 functions.php 中将 url 的验证转换为 php 函数,然后在处理表单之前将其与 jquery 结合使用来进行 ajax 验证?

4

3 回答 3

0

这是教程的链接 - http://www.krio.me/how-to-validate-a-url-php/

您还可以使用 filter_var() 函数 - filter_var('test.com', FILTER_VALIDATE_URL)

于 2012-09-20T10:00:09.143 回答
0

只需使用链接做一个 ajax 帖子:

$.post('validate.php', function(data) {
  $('.result').html(data);
});

在你的validate.php文件中做同样的想法,如下所示:

validate.php

$result = preg_match(/^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/);
if ( $result ) {
  die( '<span>Valid</span>' );
} else {
  die( '<span>This is not a valid youtube url</span>');
}

您结束的代码可能如下所示:

$("input#video_url").change(function (){
  $.post('validate.php', function(data) {
    $('.video-validation').html(data);
  });
});
于 2012-09-20T09:49:01.060 回答
0

享受这个小正则表达式:

if (!preg_match('/^(http:\/\/){0,1}(www\.){0,1}youtube\.com\/watch\?v=([a-z0-9\-_\|]{11})/i', $gyoutube, $matches))
{
    $error = "This ain't a Youtube video";
}

此外,PHP 验证是在之后完成的,而不是在提交表单之前。

于 2012-09-20T09:49:08.630 回答