如何使用单个正则表达式验证Facebook用户名?

时间:2018-10-04 02:55:21

标签: node.js regex facebook validation

facebook用户名的规则说明如下

  

用户名只能包含字母数字字符(A-Z,0-9)或句点(“。”),并且至少必须包含5个字符。

     

它们不能包含.com或.net。

ref:https://www.facebook.com/help/105399436216001

我可以使用哪种正则表达式来根据这些规则验证用户名?

1 个答案:

答案 0 :(得分:2)

尝试以下模式:

^(?!.*\.(?:com|net))[A-Z0-9.]{5,}$

console.log(/^(?!.*\.(?:com|net))[A-Z0-9.]{5,}$/.test('abc')); // too short
console.log(/^(?!.*\.(?:com|net))[A-Z0-9.]{5,}$/.test('tim.com')); // contains .com
console.log(/^(?!.*\.(?:com|net))[A-Z0-9.]{5,}$/.test('abc$#')); // forbidden characters

console.log(/^(?!.*\.(?:com|net))[A-Z0-9.]{5,}$/.test('ABC123')); // matches

注意:如果您还希望匹配小写字母,请使用[A-Za-z0-9.],或使用i标志使正则表达式文字不区分大小写。