You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP preg_match实现TikTok用户名验证求助(支持URL与账号名)

TikTok 用户名验证与清理逻辑实现

基于你已有的Instagram验证架构,以下是适配TikTok规则的完整实现:

清理函数(clean)

负责将用户输入的纯账号名(带/不带@)或TikTok URL统一格式化为@用户名的形式:

public function clean($value) {
    // 匹配TikTok URL,提取用户名(兼容带@或不带@的URL路径)
    $url_matches = [];
    if (preg_match('/^https?:\/\/(?:www\.)?tiktok\.com\/@?([\w.]+)\/?$/', $value, $url_matches)) {
        $value = '@' . $url_matches[1];
    }

    // 如果输入不带@,自动前缀@
    if (!preg_match('/^@/', $value)) {
        $value = '@' . $value;
    }

    return $value;
}

逻辑说明:

  • 兼容HTTP/HTTPS、带/不带www的TikTok URL
  • 处理URL中路径部分带@或不带@的情况(比如https://tiktok.com/@user或https://tiktok.com/user)
  • 统一输出为@用户名格式,方便后续验证

验证函数(validate)

基于TikTok规则验证格式化后的用户名:

public function validate($value) {
    $value = $this->clean($value);

    // 验证TikTok用户名:@开头,后面是1-24个字母/数字/点/下划线
    return preg_match('/^@[\w.]{1,24}$/', $value);
}

正则说明:

  • ^@:确保以@开头
  • [\w.]:匹配允许的字符(字母、数字、下划线、点)
  • {1,24}:限制用户名(不含@)长度为1-24字符,符合TikTok的长度要求

额外适配(贴合TikTok实际平台规则)

如果需要遵循TikTok更严格的实际规则(用户名不能以点开头/结尾、不能包含连续点),可以将验证正则调整为:

/^@\w(?:(?:\w|\.(?!\.)){0,22}(?:\w))?$/

该正则确保用户名首尾为字母/数字/下划线,中间可包含单个点(无连续点),同时严格控制总长度在24字符以内。

内容的提问来源于stack exchange,提问作者Bashabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:22:43