Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos como seria a expressão regular para validar um usuário que começa com @ e contem em seguida letras e numeros junto, exemplo: @drhouse2
O usuário começa com arroba e somente letras e numeros.
Obrigado desde já a todos.
Olá Leozitho era isso mesmo que queria muito obrigado.
Montei um codigo que deu certinho so tem um problema se no texto tiver mais de um usuario ele substitui o segundo como primeiro se alquem poder dar uma melhorada neste codigo fico grato desde já.
$texto = "@drhouse2 text text text text text text text @drhouse3.";
preg_match('(@[a-z0-9]{3,15})', $texto, $matches);
echo preg_replace('(@[a-z0-9]{3,15})', "<a href='http://site.com/perfil/".substr($matches[0], 1, 15)."/'>".$matches[0]."</a>", $texto);
Resultado:
<a href='http://site.com/perfil/drhouse2/'>@drhouse2</a> text text text text text text text <a href='http://site.com/perfil/drhouse2/'>@drhouse2</a>.
Onde o certo seria:
<a href='http://site.com/perfil/drhouse2/'>@drhouse2</a> text text text text text text text <a href='http://site.com/perfil/drhouse3/'>@drhouse3</a>.
Obrigado novamente.
Eu uso algo semelhante para criar links nos status do Twitter.
Aliás, você vai utilizar isso para criar links pro seu próprio site ou para o Twitter?
Se for para o Twitter, não se esqueça que os usuários do Twitter também podem ter underline, letras maiúsculas e entre 1 e 15 caracteres.
Vou postar como eu utilizo para gerar links para o Twitter:
$status = 'Siga o @imasters e @leozitho no Twitter.';
$pattern = '/@([a-z0-9_]{1,15})/i';
$replace = '<a href="http://twitter.com/${1}" target="_blank">${0}</a>';
echo preg_replace($pattern, $replace, $status);
Note que eu utilizo a letra i no final da expressão para não diferenciar minúsculas de maiúsculas. Em vez disso você também pode acrescentar A-Z maiúsculo na expressão.
Obrigado novamente Leozitho.
A expressão regular seria assim:
@[a-z0-9]{3,20}
Três e vinte seria a quantidade de letras e números que podem existir após o arroba.
Um abraço!