我在函数中使用了模式/[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/