登録フォームで、ユーザーにTwitter名(@paulなど)を入力するように依頼します。
誰もがそれに許可されている文字を教えてもらえますか?
例:az、AZ、アンダースコア、0〜9
他に何か?
文字、数字、アンダースコアのみで、最大15文字だと思います。
クイック検索により、同じトピックをカバーするこの投稿(Twitter以外)が明らかになりました。
http://kagan.mactane.org/blog/2009/09/22/what-characters-are-allowed-in-twitter-usernames/
上記の投稿には、検証に役立つ正規表現の例も含まれています。
Full regex – /^[a-zA-Z0-9_]{1,15}$/
Perl-compatible regex – /^\w{1,15}$/
これが最後のJavaScript機能です。
function validTwitteUser(sn) {
return /^[a-zA-Z0-9_]{1,15}$/.test(sn);
}
公式ガイドライン/ルールについては、Twitterのこのページを確認してください
http://support.twitter.com/articles/101299-why-can-ti-register-certain-usernames#
JavaScript / TypeScriptの場合:
まず、
npm i twitter-text
# or
yarn add twitter-text
それで、
import { isValidUsername } from 'twitter-text'
console.log(isValidUsername('@helloworld')) // true
他にも実装(Java、Ruby、ObjC)があります。https://github.com/twitter/twitter-textをご覧ください。
注:バンドルサイズが大きすぎるため、文字列を検証するだけでは不十分です。
ここでの正規表現はすべて正しいように見えますが、検証に合格できるのは4文字未満です。ツイッターによると:
したがって、正しい正規表現は次のとおりです。
/^[a-zA-Z0-9_]{4,15}$/
もし1つを選ぶとしたら、TwitterやAdminという単語を使用することもできません。私の目的では、上記で十分です。