Twitter用户名验证

8
在我们的注册表单中,我们现在想要求用户输入他们的 Twitter 用户名(例如 @paul)。
有人能告诉我们允许使用哪些字符吗?
例如 a-z、A-Z、下划线、0-9
还有其他的吗?
5个回答

14

还有一件值得注意的事情,就是15个字符的限制曾经是20个字符。您可能需要调整您的正则表达式或其他内容以适应旧名称。 - knookie

4
这是最终的JavaScript函数:
function validTwitteUser(sn) {
    return /^[a-zA-Z0-9_]{1,15}$/.test(sn);
}

3

2
虽然这里的正则表达式看起来都是正确的,但它们都允许少于4个字符通过验证。根据twitter
  • 您的用户名不能超过15个字符。您的名称可以比4个字符长(50个字符)或短,但为了简单起见,用户名要保持较短。
  • 用户名只能包含字母数字字符(字母A-Z,数字0-9),除了下划线之外,如上所述。请检查您想要的用户名是否包含任何符号、破折号或空格。
因此,正确的正则表达式是:
/^[a-zA-Z0-9_]{4,15}$/

如果苛刻一些的话,你也不能使用Twitter或Admin这个词,对于我的目的来说,上面的内容就足够了。

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


注意:仅仅进行字符串验证的捆绑包大小过大...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接