【问题标题】:How Cleanup any non alphanumeric characters before comparing the string? [duplicate]如何在比较字符串之前清理任何非字母数字字符? [复制]
【发布时间】:2014-07-13 03:20:12
【问题描述】:

我用这个函数来检查用户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 '';
    }
}
?>

我想要的是,接受前 2 个字母作为 AP,其余 8 个数字像这样

AP14000001

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

提前致谢

【问题讨论】:

  • 您能详细说明一下吗?这里有什么问题!?
  • 亲爱的@revo 我已经建立了一个学术门户,只有一个管理员控制着整个门户。在用户注册部分,管理员使用他的学术 ID 注册每位教师,该 ID 以 AP14000001, AP14000002, AP14000003, .... 开头,我想要的是当管理员使用他的 ID 注册新用户时,系统会检查这个 ID 是不是上面写的 10 位有效,并检查它是否重复?
  • Jay Blanchard 解决方案是您想要的?
  • 这究竟是什么意思 /^AP[0-9]{1,8}$/?? @revo
  • 表示输入必须以AP 开头,后跟最多8 个数字,即输入末尾。

标签: php mysql regex duplicates


【解决方案1】:

正则表达式将是(在http://regexpal.com 测试)-

/^AP[0-9]{1,8}$/

【讨论】:

  • 你忘了m flag
  • 我不知道如果它是用户 id @revo 为什么需要多行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
  • 2017-10-29
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
相关资源
最近更新 更多