Search code examples
phpregexvalidationvimeourl-validation

Validate a Vimeo clip url


I'd like to validate a field in a form to make sure it contains the proper formatting for a URL linking to a Vimeo video. Below is what I have in Javascript, but I need to convert this over to PHP (not my forte)

Basically, I need to check the field and if it is incorrectly formatted, I need to store an error message as a variable.. if it is correct, I store the variable empty.

// Parse the URL
var PreviewID = jQuery("#customfields-tf-1-tf").val().match(/http:\/\/(www.vimeo|vimeo)\.com(\/|\/clip:)(\d+)(.*?)/);
if ( !PreviewID ) {
    jQuery("#cleaner").html('<div id="vvqvideopreview"><?php echo $this->js_escape( __("Unable to parse preview URL. Please make sure it's the <strong>full</strong> URL and a valid one at that.", 'vipers-video-quicktags') ); ?></div>');
    return;
}

The traditional vimeo url looks like this: http://www.vimeo.com/10793773


Solution

  • if (0 === preg_match('/^http:\/\/(www\.)?vimeo\.com\/(clip\:)?(\d+).*$/', $value))
    {
        $error = 'Unable to parse preview URL';
    }
    

    Update, in reply to your comment:

    if (0 === preg_match('/^http:\/\/(www\.)?vimeo\.com\/(clip\:)?(\d+).*$/', $value, $match))
    {
        $error = 'the error';
    }
    else
    {
        $vimeoID = $match[3];
    }