有没有办法区分电子邮件地址和推特ID?
两者都使用'@'字符,电子邮件正则表达式将包含在twitter id正则表达式中
最好的方法是什么?
我应该在'@'字符前要求一个空格,以便确定它是推特ID吗?
答案 0 :(得分:4)
不完全确定Twitter用户名中允许哪些字符,但基本上如此:
/(?:^|\s)@[a-zA-Z0-9_.-]+\b/
答案 1 :(得分:3)
您可以使用(?<=\s)
测试它前面是空格,然后检查仅[A-Za-z0-9_]
的推文ID的有效字符。
这会产生以下正则表达式:(?<=\s|^)@[A-Za-z0-9_]+
你最终可以在它之后添加一个点,逗号或空格的检查,以检查它是否在一个句子中正确格式化而不是一些奇怪的工件:
(?<=\s|^)@[A-Za-z0-9_]+(?=[\s.,])
请注意,lookbehind和lookahead(?<=
和?=
)可能无法使用您选择的语言,但我会假设它没有指定。
答案 2 :(得分:1)
推特ID不会通过电子邮件正则表达式检查。
定期发送电子邮件:
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$
twitter不会有最后的字符:
^@[A-Za-z0-9_]+$
因此请检查它是否是有效的电子邮件,如果没有,请检查它是否是有效的推特ID
进一步阅读:
答案 3 :(得分:1)
电子邮件地址从不以@开头,而twitter ids 始终。
isTwitter = address[0] == '@'