验证一个Twitter用户名我已经使用的模式/[a-z0-9_]+/i
函数内:如何使用正则表达式
function validate_twitter($username) {
if (eregi('/[a-z0-9_]+/i', $username)) {
return true;
}
}
有了这个,我测试,如果输入的是一个有效的Twitter用户名,但我有困难,因为它没有给我一个有效的结果。
有人可以帮我找到解决方案。
验证一个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 etc...
使用以下:
$string = 'RT @username: lorem ipsum @cjoudrey etc...';
preg_match_all('/@([A-Za-z0-9_]{1,15})/', $string, $usernames);
print_r($usernames);
您可以使用后者与preg_replace_callback到linkify用户名中的字符串。
编辑:Twitter也open sourced text libraries为Java和Ruby匹配的用户名,哈希标签等。您可能可以看看代码,并找到他们使用的正则表达式模式。
编辑(2):这里是Twitter的文本库的PHP接口:https://github.com/mzsanford/twitter-text-php#readme
上述模式也将匹配电子邮件地址,例如[email protected]会返回@email,这显然不是Twitter用户名。我解决了这个问题,增加了负向预测(?![.A-Za-z])全字符串:/@([A-Za-z0-9_]{1,15})(?![.A- Za-z])/ – KryptoniteDove 2013-02-25 20:25:48
不是[A-Za-z0-9_]与\ w – Ayyash 2013-07-03 06:09:48
相同@ KryptoniteDove的评论应该在这里用作答案,因为它是正确的并克服了一个烦人的问题。你能更新吗? http://regexr.com/38pig – EvilDr 2014-05-01 13:51:38
我相信你正在使用PCRE表格,在这种情况下,你应该使用preg_match函数。
请勿使用/
和ereg*
。
事实上,如果可以避免的话,根本不要使用ereg*
。 http://php.net/preg_match
编辑:还要注意/[a-z0-9_]+/i
将匹配spaces are invalid
和not-a-real-name
。你几乎肯定想要/^[a-z0-9_]+$/i
。
小号
eregi()
不会对任何/
或额外的切换。只需使用eregi('[a-z0-9_]+')
您的正则表达式是有效的,虽然它允许空间FYI。 (如果你想测试正则表达式,我推荐:http://rubular.com/)。
这里第一个问题是您使用eregi
,从PHP 5.3开始已弃用。建议您使用preg_match
代替它,它具有相同的语法。试一试,看看它是否有帮助。
为的preg_match PHP文档:eregi http://www.php.net/manual/en/function.preg-match.php PHP文件:http://php.net/manual/en/function.eregi.php
的Twitter用户名有1到15个字符......所以这可能是更好的与/^[a-z0-9_]{1,15}$/i
。
请注意,ereg *函数从PHP 5.3.0开始已弃用,请使用preg_ *函数,而在此情况下使用preg_match。 – 2010-12-12 21:40:19
向我们展示输入,预期输出和实际输出也将对我们有所帮助... – npinti 2010-12-12 21:41:06
我相信这是http://stackoverflow.com/questions/4766158/php-to-replace-username-with -link-to-twitter-account – Dan 2013-04-30 21:38:57