7

在我们的注册表单中,我们现在想要求用户输入他们的推特名称(例如@paul)。

谁能告诉它允许使用哪些字符?

例如 az、AZ、下划线、0-9

还要别的吗?

4

5 回答 5

14

相信它只是字母、数字和下划线,最多 15 个字符。

快速搜索发现了这篇文章(非 Twitter),涵盖了相同的主题:

http://kagan.mactane.org/blog/2009/09/22/what-c​​haracters-are-allowed-in-twitter-usernames/

上面的帖子还包含帮助您验证的正则表达式示例:

Full regex – /^[a-zA-Z0-9_]{1,15}$/
Perl-compatible regex – /^\w{1,15}$/
于 2012-07-06T11:12:14.517 回答
4

这是最终的 JavaScript 函数:

function validTwitteUser(sn) {
    return /^[a-zA-Z0-9_]{1,15}$/.test(sn);
}
于 2013-08-22T06:31:36.503 回答
3

从 Twitter 检查此页面以获取官方指南/规则

http://support.twitter.com/articles/101299-why-can-ti-register-certain-usernames#

于 2012-07-06T11:11:58.853 回答
1

虽然这里的正则表达式看起来都是正确的,但它们都允许少于 4 个字符通过验证。根据推特

  • 您的用户名不能超过 15 个字符。您的姓名可以长于(50 个字符)或短于 4 个字符,但为方便起见,用户名保持较短。
  • 如上所述,用户名只能包含字母数字字符(字母 AZ,数字 0-9),下划线除外。检查以确保您想要的用户名不包含任何符号、破折号或空格。

因此,正确的正则表达式是:

/^[a-zA-Z0-9_]{4,15}$/

如果要挑剔,那么您也不能使用 Twitter 或 Admin 这个词,就我的目的而言,以上就足够了。

于 2021-10-18T16:31:24.203 回答
1

对于 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


注意:捆绑包太大,仅用于字符串验证...

于 2020-05-23T02:52:32.153 回答