php - 如何使用正则表达式验证 Twitter 用户名

标签 php regex validation twitter

我在函数中使用了模式/[a-z0-9_]+/i:

function validate_twitter($username) {
 if (eregi('/[a-z0-9_]+/i', $username)) {
  return true;
 }
}

有了这个,我测试输入是否是有效的 Twitter 用户名,但我遇到了困难,因为它没有给我一个有效的结果。

谁能帮我找到解决办法。

最佳答案

验证字符串是否是有效的 Twitter 句柄:

function validate_username($username)
{
    return preg_match('/^[A-Za-z0-9_]{1,15}$/', $username);
}

如果您尝试在字符串中匹配 @username

例如:RT @username: lorem ipsum @cjoudrey 等...

使用以下内容:

$string = 'RT @username: lorem ipsum @cjoudrey etc...';
preg_match_all('/@([A-Za-z0-9_]{1,15})/', $string, $usernames);
print_r($usernames);

您可以将后者与 preg_replace_callback 一起使用在字符串中链接用户名。

编辑:还有推特 open sourced text libraries用于 Java 和 Ruby,用于匹配用户名、哈希标签等。您可能可以查看代码并找到它们使用的正则表达式模式。

编辑 (2):这是 Twitter 文本库的 PHP 端口:https://github.com/mzsanford/twitter-text-php#readme

关于php - 如何使用正则表达式验证 Twitter 用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4424179/

相关文章:

php - 确定 Laravel 查询中是否存在关系

php - 共享主机上的 Laravel - 子域

regex - PCRE:回溯中不允许反向引用?

javascript - 验证用户输入以使用正则表达式获取字符和数字不起作用

java - 用户定义的验证耦合问题

javascript - 结合 jQuery Validate 和 ajax 表单提交

php - MYSQL - 错误代码 :- 1241 "Operand should contain 1 column(s) "

php - 对多维数组进行两次排序

二进制字符串的Java正则表达式

java - 如何使用java验证完整的html