Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在比较字符串之前清除任何非字母数字字符?_Php_Mysql_Regex_Duplicates - Fatal编程技术网

Php 如何在比较字符串之前清除任何非字母数字字符?

Php 如何在比较字符串之前清除任何非字母数字字符?,php,mysql,regex,duplicates,Php,Mysql,Regex,Duplicates,我使用此功能检查用户ID以避免重复,代码如下: <?php require_once('includes/config.php'); if(isset($_GET['Uid'])){ $Uid = $_GET['UID']; $Uid = preg_replace('/^.*?(AP[0-9]{1,}).*?$/i', '$1', $Uid ); $query = "SELECT user_id FROM user where

我使用此功能检查用户ID以避免重复,代码如下:

    <?php 
    require_once('includes/config.php');
    if(isset($_GET['Uid'])){
    $Uid = $_GET['UID'];
    $Uid = preg_replace('/^.*?(AP[0-9]{1,}).*?$/i', '$1', $Uid );

        $query = "SELECT user_id FROM user  where user_id='$Uid'";
                $users = mysqli_query($link, $query);
                $result = mysqli_num_rows($users);
    if($result > 0) 
    {   
       echo "Username is already taken, or invalid username!";
    }
    else {
        echo '';
    }
}
?>

我想要的是,接受前两个字母作为AP,剩下的8个像这样的数字

AP14000001

然后检查用户ID是否存在重复,如果用户ID重复,则会发出警告或将其作为新ID接受


提前感谢

正则表达式将在以下位置进行(测试)——


你能详细说明一下吗?这里有什么问题!?亲爱的@revo我建立了一个学术门户,只有一个管理员控制整个门户。在用户注册部分中,管理员使用其学术ID注册每位教师,该ID以AP14000001、AP14000002、AP14000003等开头。。。。我想要的是,当管理员用他的ID注册新用户时,系统会检查这个ID是否有效,如上面所写的10位数字,并检查它是否重复?Jay Blanchard解决方案就是您想要的?这到底是什么意思/^AP[0-9]{1,8}$/@revoMeans输入必须以
AP
开头,然后是输入末尾最多8个数字。您忘记了
m
flag我不知道如果它是用户id@revo,为什么需要多行
/^AP[0-9]{1,8}$/