Javascript 用于在react native中验证用户名的正则表达式

Javascript 用于在react native中验证用户名的正则表达式,javascript,regex,react-native,validation,Javascript,Regex,React Native,Validation,我不太懂正则表达式,当涉及到用户名时,它会变得有点棘手,所以我请求我的程序员同事帮助我根据特定条件验证用户名 用户名只能包含字母、数字、句点和下划线 用户名可以以下划线开头和结尾,但不能以句点结尾。(出于安全原因) 用户名长度应介于4到20个字符之间 不允许使用空格 有效和无效用户名的示例: josh有效 .josh_无效 _乔希无效 _josh_123.bradvalid josh brad无效 我已经搜索过了,但我找到的答案没有多大帮助。这是我现在的正则表达式: RegExp('^(?=[A

我不太懂正则表达式,当涉及到用户名时,它会变得有点棘手,所以我请求我的程序员同事帮助我根据特定条件验证用户名

  • 用户名只能包含字母、数字、句点和下划线
  • 用户名可以以下划线开头和结尾,但不能以句点结尾。(出于安全原因)
  • 用户名长度应介于4到20个字符之间
  • 不允许使用空格
  • 有效和无效用户名的示例:

    josh
    有效

    .josh_
    无效

    _乔希<代码>无效

    _josh_123.brad
    valid

    josh brad
    无效

    我已经搜索过了,但我找到的答案没有多大帮助。这是我现在的正则表达式:

    RegExp('^(?=[A-Za-z0-9._]{4,20}$)[^_.].*[^_.]');
    

    提前感谢

    无需任何前瞻即可实现:

    /^\w[\w.]{2,18}\w$/
    
    如果要使用
    RegExp
    ,请使用:

    var re = new RegExp("^\\w[\\w.]{2,18}\\w$");
    

    图案细节:

    • \w
      :是
      [a-zA-Z0-9]的快捷方式
    • ^
      :开始
    • \w
      :匹配单词字符
    • [\w.]{2,18}
      :匹配2到18个字或点字符计数,从而使总长度在4到20之间
    • \w
      :匹配单词字符
    • $
      :结束

    这可以在没有任何前瞻性的情况下实现:

    /^\w[\w.]{2,18}\w$/
    
    如果要使用
    RegExp
    ,请使用:

    var re = new RegExp("^\\w[\\w.]{2,18}\\w$");
    

    图案细节:

    • \w
      :是
      [a-zA-Z0-9]的快捷方式
    • ^
      :开始
    • \w
      :匹配单词字符
    • [\w.]{2,18}
      :匹配2到18个字或点字符计数,从而使总长度在4到20之间
    • \w
      :匹配单词字符
    • $
      :结束

    谢谢你,伙计,这很有魅力。不幸的是,我需要更多的代表投票支持你的答案。不管怎么说,谢谢汉克斯,这很有魅力。不幸的是,我需要更多的代表投票支持你的答案。无论如何,谢谢