JavaScript中登录名的正则表达式及剖析(0基本)

简言

在JavaScript中,常常会用到正则表达式来举行形式婚配。比方,登录名考证,暗码强度考证,字符串查找或替代等操纵。如今就最先吧,零基础写出你的第一个正则表达式!

在做用户注册时,都邑用到登录名正则校验。要写出准确的正则表达式,先要定义表达式划定规矩。假定登录名做以下划定规矩定义:

  • 最短4位,最长16位 {4,16}
  • 能够包含小写大母 [a-z] 和大写字母 [A-Z]
  • 能够包含数字 [0-9]
  • 能够包含下划线 [ _ ] 和减号 [ – ]

依据以上划定规矩,很轻易给出正则表达式的字面量以下:

var pattern = /^[a-zA-Z0-9_-]{4,16}$/

测试

测试效果以下:

var pattern = /^[a-zA-Z0-9_-]{4,16}$/;

pattern.test(‘ifat3’) = true

pattern.test(’42du’) = true

pattern.test(’42du-_’) = true

pattern.test(‘_42du’) = true

pattern.test(’42d’) = false

pattern.test(’42du42du42du42du1′) = false

pattern.test(’42du@’) = false

测试代码

剖析

字面量 / /

正则表达式的字面量定义为包含在一对斜杠(/)之间的字符,比方:

var pattern = /s$/;

上述字面量婚配一切以字母“s”末端的字符串。

字符类 [ ]

将字符放进方括号内就组成了字符类。一个字符类能够婚配它所包含的恣意字符。因而,正则表达式/[abc]/就和字母“a”,“b”,“c”中的恣意一个都婚配。

字符类能够运用连字符来示意字符局限。要婚配拉丁小写字母能够运用/[a-z]/

[a-zA-Z0-9_-]示意婚配恣意的拉丁大小写字母,数字再加上下划线和减号。

反复 {}

在正则表达式顶用{ }来示意元素反复涌现的次数。

  • {n,m} 婚配前一项起码n次,但不能超过m次
  • {n,} 婚配前一项n次或更屡次
  • {n} 婚配前一项n次

[a-zA-Z0-9_-]{4,16} 示意婚配恣意的拉丁大小写字母,数字再加上下划线和减号涌现起码4次,最多16次。

婚配位置

  • ^ 婚配字符串的开首,在多行检索中,婚配一行的开首
  • $ 婚配字符串的末端,在多行检索中,婚配一行的末端

延长1

依据以上申明,你一定理解了上述正则表达式所表达的寄义,是否是很简单!

假定你对上述划定规矩不满意,想增添一条划定规矩,以下:

  • 首字母只能是大小写字母

很轻易变动上述正则表达式以下:

var pattern = /^[a-zA-Z][a-zA-Z0-9_-]{3,15}$/;

给出测试效果以下:

var pattern = /^a-zA-Z{3,15}$/;

pattern.test(‘ifat3’) = true

pattern.test(‘Ifat3’) = true

pattern.test(‘du42’) = true

pattern.test(’42du’) = false

pattern.test(‘d42’) = false

pattern.test(‘du42du42du42du421’) = false

pattern.test(‘du42@’) = false

测试代码

延长2

假如许可中文的登录名,变动划定规矩,以下:

  • 首字母只能是大小写字母或中文基础汉字
  • 别的位也能够包含中文基础汉字

给出以下正则表达式:

var pattern = /^[a-zA-Z\u4E00-\u9FA5][a-zA-Z0-9\u4E00-\u9FA5_-]{3,15}$/;

个中[\u4E00-\u9FA5]是汉字的正则婚配,包含基础汉字2万多个,个中\u4E00示意汉字“一”,详细请拜见“汉字unicode编码局限”。

给出测试效果以下:

var pattern = /^a-zA-Zu4E00-u9FA5{3,15}$/;

pattern.test(‘ifat3’) = true

pattern.test(‘Ifat3’) = true

pattern.test(‘毛三胖子’) = true

pattern.test(’42du’) = false

pattern.test(‘d42’) = false

pattern.test(‘du42du42du42du421’) = false

pattern.test(‘du42@’) = false

测试代码

依据以上内容,定义你本身的登录名正则表达式吧!

原文链接

    原文作者:毛瑞
    原文地址: https://segmentfault.com/a/1190000013618872
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞