正则表达式检查facebook url并且只是字母数字。

时间:2015-09-14 22:05:17

标签: php regex facebook

我制作了这个脚本,要求用户输入facebook网址。该部分运行良好,但用户仍然可以在url变量中添加特殊字符,我正试图阻止它。

我希望正则表达式只允许使用字母数字字符,破折号和下划线。而不是允许空间。

我尝试将[a-zA-Z0-9_]添加到我的正则表达式中,但它不起作用。

<?php
$facebook_url = "http://www.facebook.com/user";

if(!preg_match('^facebook\.com\S*[a-zA-Z0-9_]*^', $facebook_url)){
//if(!preg_match('^http://(?:.*\.)?facebook\.com\S*[a-zA-Z0-9_]*^', $facebook_url)){

    echo "ummm, this is not a facebook url";

} else {

    echo "this is a facebook url";

}
?>

<br />

<a href="<?php echo $facebook_url?>" target="_blank">My Facebook</a>

2 个答案:

答案 0 :(得分:2)

你应该删除&#39; ^&#39;字符。 (此标志标志着该行的开头)

preg_match('/(https?:\/\/)?([\w\.]*)facebook\.com\/([a-zA-Z0-9_]*)$/', $facebook_url)

答案 1 :(得分:0)

请删除&#39; ^&#39;从开头到结尾的字符。使用此:

'facebook\.com\/[a-zA-Z0-9_]*$'

P.S。在网址中也允许下划线(&#39; _&#39;)。没有下划线:

'facebook\.com\/[a-zA-Z0-9]*$'