正则

正则:

它就是一个规则,用来处理字符串的一个规则(正则就是用来处理字符串的)

1、处理:

a、匹配:判断一个字符串是否符合我们制定的规则---->用test进行判断 test:reg.test(str)

b、捕获:把字符串中符合我们正则规则的内容捕获到--->exec:reg.exec(str)

2、如何创建一个正则

字面量方式: var reg=/\d/;

实例创建方式:var reg=new RegExp("");

两种创建方式的区别:
a、字面量方式中出现的一切都是元字符,所以不能进行变量值的拼接,而实例创建的方式是可以的
b、字面量方式中直接写\d就可以,而在实例中需要把它转译 \\d

在字面量方式中,/ /之间包起来的所有内容都是元字符,有的具有特殊意义,大部分都是代表本身含义的普通的元字符

var name="abc";
var reg=/^\d+"+name+"\d+$/g;
console.log(reg.test("1234abc5678"));  //--->false
consloe.log(reg.test('1234""""nameeee"5678'));  //--->true

以上情况,只能使用实例创建方式了
var reg=new RegExp("^\\d+"+name+"\\d+$","g");

3、如何学习正则:

console.dir(RegExp.prototype);来学习,看正则原型上都有哪些方法(用面向对象思想来学习js)

正则的元字符及简单应用:

元字符:每一个正则表达式都是由元字符和修饰符组成的,【元字符】:在 / /之间具有意义的一些字符
1、具有特殊意义的元字符:
\:转义字符,转译后面字符所代表的含义
^:以某一个元字符开始(没有实际位置)
$:以某一个元字符结尾(没有实际位置)eg:

var reg=/\d/;  //--->包含一个0-9之间的数字`
`var reg=/^\d$/;  //^和$放一起用时代表只能是xxx的意思,只能是一个0-9之间的数字

\n:匹配一个换行符
.:除了\n以外的任意字符
eg:

var reg=/^0.2$/;  //以0开头,以2结尾,中间可以是除了\n的任意字符`
`var reg=/^0\.2$/; //此时 . 就代表小数点,用转义字符实现

( ):分组--->把一个大正则本身划分成几个小正则(var reg=/^(\d+)haha(\d+)$/
a、分组的作用一:改变x|y的默认优先级
eg:

var reg=/^18|19$/; 
//符合的有18、19、181、189、119、819、1819....或以1开头,或以9结尾;或者以18开头,或以19结尾
var reg=/^(18|19)$/;  //只能是要么18要么19了

[ ]
a、在[ ]中出现的所有的字符都是代表本身意思的的字符(没有特殊含义)
b、中括号中不识别两位数

var reg=/^[12]$/;  //---->不是12,代表1或者2中的一个
var reg=/^[12-68]$/;  //不是12-68,是指1、2-6中的一个、8,这三个中的一个

c、
var reg=/^[\w-]$/; //---->数字、字母、下划线、- 中的一个

x|y:x或者y中的一个
[xyz]:x或者y或者z中的一个
[^xyz]:除了xyz三个以外的任何一个字符
[a-z]:a-z之间的任何一个字符
[^a-z]:除了a-z之间的任何一个字符
\d:一个0-9之间的数字
\D:除了0-9之间的数字以外的任何字符
\b:匹配一个边界符
\w:数字、字母、下划线中的任意一个字符。等同于[0-9a-zA-Z_]
\s:匹配一个空白字符 空格、一个制表符、换页符
2、代表出现次数的量词元字符:
*:出现零到多次
+:出现一到多次(最少出现一次)
?:出现零次或者一次
{n}:出现n次
{n,}:出现n到多次
{n,m}:出现n到m次
eg:

var reg=/^\d+$/;  //只能是一到多个数字,且每个都在0-9之间
var reg=/^1\d{10}$/;  //简单的验证手机号的正则:11位数字,第一位是1;)
元字符的简单应用:

1、有效数字的正则:(正数、负数、零、小数)
a、“.”可以出现也可以不出现,一旦出现,后面必须跟着一位或多位数字
var reg=/^(\.\d+)?$/;
b、最开始可以有+/-,也可以没有
var reg=/^[+-]?$/;
c、整数部分,一位数可以是0-9之间的一个,多位数不能以0开头
var reg=/^(\d|([1-9]\d+))$/; //改变优先级了

2、年龄介于18-65之间:
给划分为三段:18-19,20-59,60-65(有规律的)
var reg=/^(1[8-9]|[2-5]\d|6[0-5])$/;

3、验证邮箱的正则(简版):
左边:数字、字母、下划线、“.”、“-”等,例如:123456789@qq.com12345678@163.com.cnhahahah@kindle.cn
var reg=/^[\w.-]+@[0-9a-zA-Z]+(\.[a-zA-Z]{2-4}){1,2}$/; //最后是指(\.[a-zA-Z]{2-4})整个再出现1或2次(.com.cn);+指重复一或多次

4、中国标准真实姓名: 2-4位汉字
var reg=/^[\u4e00-\u9fa5]{2,4}$/;
\u4e00和\u9fa5代表最开始和结尾汉字的Unicode编码

5、身份证号码:
var reg=/^(\d{2})(\d{4})(\d{4})(\d{2})(\d{2})(\d{2})(\d)(\d|X)$/;
省(2位)+市(4位)+出生年+月+日+(2位数)+性别(1位,男奇数女偶数)+尾数(数或X)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • --------------------------正则的作用--------------------------...
    G_whk阅读 608评论 1 5
  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 3,981评论 0 20
  • 一、正则初体验 在软件开发中,不管是Java、C#、JS、OC....基本上都会接触到正则,不过大多数人都对正则并...
    iceman_dev阅读 2,640评论 9 28
  • 推荐几个正则表达式编辑器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1阅读 11,458评论 9 151
  • 昨天在车上跟出租车司机聊天,他说,他每天下午5点出车,一直到第二天的中午12点才回家。 我说,那你都是白天休息啊。...
    陌上花开平子阅读 750评论 0 0