驗證一個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