首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

身份证号码的正则表达式及验证详解(JavaScript,Regex)

根据【中华人民共和国国家标准 GB 11643-1999】中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。...排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。...1.1.3 月份码规则: 月份码长2位 第一位数字为0,第二位数字为1-9 或者第一位数字为1,第二位数字为0-2 根据以上规则,写出月份码的正则表达式: /((0[1-9])|(1[0-2]))/。...0开头 console.log(p.test("01010519491231002X")); //输出 false 年份不能以17开头 console.log(p.test("11010517491231002X...例:我国并不存在16,26开头的地区,却可通过验证 日期判定不够精确。

24.1K134

(90) 正则表达式 (下) 计算机程序的思维逻辑

88节介绍了正则表达式的语法,上节介绍了正则表达式相关的Java API,本节来讨论和分析一些常用的正则表达式,具体包括: 邮编 电话号码,包括手机号码和固定电话号码 日期和时间 身份证 IP地址 URL...此外,写一个正则表达式,匹配希望匹配的内容往往比较容易,但让它不匹配不希望匹配的内容,则往往比较困难,也就是说,保证精确性经常是很难的,不过,很多时候,我们也没有必要写完全精确的表达式,需要写到多精确与你需要处理的文本和需求有关...[0-9])"); // 右边不能有数字 就可以输出期望的结果了。 非0开头的6位数字就一定是邮编吗?...[0-9])"); // 右边不能有数字 身份证 身份证有一代和二代之分,一代是15位数字,二代是18位,都不能以0开头,对于二代身份证,最后一位可能为x或X,其他是数字。...用户名的一般规则是: 由英文字母、数字、下划线、减号、点号组成 至少1位,不超过64位 开头不能是减号、点号和下划线 比如: h_llo-abc.good@example.com 这个表达式可以为

982100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    版本号的正则表达式-身份证号码的正则表达式及验证详解(JavaScript,Regex)

    根据【中华人民共和国国家标准 GB 11643-1999】中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。...排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。   ...如果不需要18开头的年份,可以去掉18。   1.1.3 月份码规则:   根据以上规则,写出月份码的正则表达式: /((0[1-9])|(1[0-2]))/。   ...0开头 console.log(p.test("01010519491231002X")); //输出 false 年份不能以17开头 console.log(p.test("11010517491231002X...也有说法表述91开头是外国人取得中国身份证号码的前两位编码,但本人并未得到证实。如有持91开头身份证或认识马布里的,请帮忙确认相关信息。

    1.7K10

    【正则表达式学习笔记之一】简单认识正则表达式

    换句话说,正则表达式就是记录文本规则的代码。 很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。...和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号...这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...\b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。...如果需要更精确的说法,\b匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w。 如果同时使用其它元字符,我们就能构造出功能更强大的正则表达式。

    59230

    前端基础-JavaScript中正则对象

    var pattern = new RegExp(/[a-z]/);//实例化RegExp对象 1、test方法 test方法检测目标字符串和正则表达式是否匹配,如果匹配返回true,不匹配返回false...,上一次匹配结束后的位置(目标字符串中的索引),即下一次匹配开始的位置。..., [23位号段,具体咨询各大运营商] 简单版(限制前两位):1开头,第二位3-9,后面9位数字 /^1[3-9]\d{9}$/ 精确版(限制前三位):(如果出现新的手机号段,则不适用,需更新) 示例:...2、检测邮箱格式 邮箱特点: 2342.3s_-df@sina.com.cn 通用的邮箱的特点: 简单版:必须有@ 正则 /@/ 精确版: ​ 必须有@和. ​....-],但是开头必须是数字字母下划线 ​ @和点之间:是一个域名,要求至少一个字符,可以是数字字母中横线,要求开头是数字或字母 ​ 点后面:要求是至少一个字符,必须是字母 ​ 点xxx,这部分可以出现一次

    1.1K20

    Java正则表达式简介及实例

    也可以简单的理解在 Java 的正则表达式中,两个 \\ 代表其他语言中的一个 \,这也就是为什么表示一位数字的正则表达式是 \\d,而表示一个普通的反斜杠是 \\。...构建正则表达式示例 示例1 社会安全号的模式是xxx-xx-xxx,其中x是一位数字。...x是一位数字,并且第一位数字不能为0.电话号码的正则表达式可以描述为 \\([1-9][\\d]{2})[\\d]{3}-[\\d]{4} 注:括符(和)在正则表达式中是特殊字符,用于对模式分组。...不能以数字开头。 标识符是一个由字母、数字、下划线(_)和美元符号组成的字符序列。...量词符变为”不情愿“或者”惰性“的,这意味着它将匹配尽可能少的次数。例如,下面的语句显示JRaavaa,因为第一个匹配成功的是a。

    2.3K20

    教你正则表达式如何30分钟入门

    和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号...“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。...这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...\b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。...*连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。

    55540

    这可能是迄今为止最好的一篇正则入门教程-上

    和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂,比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号...这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。 \b 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。...这里的匹配是指是字符串里有没有符合表达式规则的部分。如果不使用^和$的话,对于\d{5,12}而言,使用这样的方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。...元字符^(和数字6在同一个键位上的符号)和 $ 都匹配一个位置,这和 \b 有点类似。 ^匹配你要用来查找的字符串的开头,$匹配结尾。

    94410

    字符串之正则表达式

    和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求。...当然,代价就是更复杂,比如你可以编写一个正则表达式,用来查找所有以 0 开头,后面跟着 2-3 个数字,然后是一个连字号 “-” ,最后是 7 或 8 位数字的字符串(像 011-12345678 或...如果要精确地查找 me 这个单词的话,我们应该使用 \bme\b。 \b 是正则表达式规定的一个特殊代码(有些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。...下面是 .Net 中常用的正则表达式选项: 限定符 描述 IgnoreCase 匹配时不区分大小写。...Multiline 更改 ^ 和 的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。在此模式下 的精确含意是:匹配 \n 之前的位置以及字符串结束前的位置.)

    3.3K20

    史上最全的正则表达式-匹配中英文、字母和数字

    _)  不能以_开头 (?!.*?..._$)  不能以_结尾 [a-zA-Z0-9_\u4e00-\u9fa5]+  至少一个汉字、数字、字母、下划线 $  与字符串结束的地方匹配 6、只含有汉字、数字、字母、下划线,下划线位置不限:...]*$” 只能输入n位的数字:“^d{n}$” 只能输入至少n位数字:“^d{n,}$” 只能输入m-n位的数字:“^d{m,n}$” 只能输入零和非零开头的数字:“^(0|[1-9][0-9]...只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$” 验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间, 只能包含字符、数字和下划线。...$” 验证身份证号(15位或18位数字):“^d{15}|d{}18$” 验证一年的12个月:“^(0?

    58.1K75

    正则表达式30分钟入门教程

    和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号...这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...如果需要更精确的说法,\b匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w。 如果同时使用其它元字符,我们就能构造出功能更强大的正则表达式。...exp),断言此位置的后面不能匹配表达式exp。例如:\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字;\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词。...Multiline(多行模式) 更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。

    84800

    (待整理完)正则表达式30分钟入门教程

    和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂 入门 学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验...这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...\b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。...^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用, 比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。...和忽略大小写的选项类似,有些正则表达式处理工具还有一个处理多行的选项。如果选中了这个选项,^和$的意义就变成了匹配行的开始处和结束处。 字符转义 如果你想查找元字符本身的话,比如你查找.

    65030

    入门正则表达式

    这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。...\b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。...*同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。因此,.*连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b....*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。 这里的\d是个新的元字符,匹配一位数字(0,或1,或2,或……)。

    62650

    正则表达式30分钟入门教程

    和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以 0开头,后面跟着 2-3个数字,然后是一个连字号...这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是 h,后一个是 i。...如果需要更精确的说法,\b匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w。 换行符就是 '\n', ASCII编码为 10(十六进制 0x0A)的字符。...匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou这几个字母以外的任意字符 例子: \S+匹配不包含空白符的字符串。...exp),断言此位置的后面不能匹配表达式exp。例如: \d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字; \b((?!abc)\w)+\b匹配不包含连续字符串 abc的单词。

    97030

    Java正则表达式(一看就懂)

    5~15 位数字   ②不能以 0 开头   若使用之前代码:  ​  以上要求就可以变成一个正则表达式:[1-9][0-9]{4,14}  通过正则表达式,我们就可以检查字符串中的 QQ 号是否符合要求了...(String regex) 根据给定的正则表达式拆分当前字符串 练习:   1、 举例:校验 qq 号码.   1:要求必须是 5-15 位数字   2:0 不能开头  代码演示:   ...含义:代表的是任何字符  例如:匹配规则为" . ",那么需要匹配的是一个任意字符。  规则:\\d  含义:相当于[0-9]。代表的是 0 到 9 数字,0 和 9 包括在内。 ...代表的字母或者数字或者下划线  例如:匹配规则为"\\w ",,那么需要匹配的是一个字母或者是一个数字或一个下滑线  4.2边界匹配器(以x开头或结尾) 边界匹配器:^  含义:代表以某些内容开头...3 个字符 a  数量词:X{n,m}  含义:代表的是 X 出现至少 n 次,但是不超过 m 次  例如:匹配规则为"a{5,8}",那么需要匹配的内容是有 5 个字符 a 到 8 个字符 a

    2K20

    7分钟快速入门史上最强正则表达式教程

    下面是我整理的以前培训的录音,应对FreeSWITCH中的正则表达式,对于初学者基本上就够了。如果你在学FreeSWITCH Dialplan和正则表达式,可以看一看。...FreeSWITCH中使用PCRE(Perl Compatible Regular Express),大多数其它软件中的正则表达式也兼容这个版本,因而,这里讲的正则表达式也不限于在FreeSWITCH中使用...\d+$ + 号表示1个或多个它前面的字符,因为 + 前面是 \d, 所以它就等于1个或多个数字,实际上,它匹配任何以123 开头的至少4位数的数字串,如1230,12300,12311, 123456789...所以, 它匹配以123开头的至少3位数的数字串,如 123,123789 ^123 跟上面一样,由于没有结尾的$,它匹配任何以123开头的 数字串,但除此之外,它还匹配后面是字母的情况,如123abc...123$ 匹配任何以123结尾的字符串 ^123\d{5}$ {5}表示精确匹配5位,包含它前面的一个字符。

    1.6K20
    领券