javaScript初探正则表达式

标准定义:是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的

望文生意:规定了一个字符串从开始到结束是由什么开始并且什么结束,中间的单词是由什么组成的,好比一个人是由头发或者没有头发开始的,但是必须有头,然后是脖子,然后是身子最后是脚。制定好规则后就可以将想要比较的对象往这个规则里面传递,如果合格就会返回true,否则返回false!所以写正则的时候先找找规律看看这个字段串是由几部分组成的!然后把这几部分拆成可用正则表达式表达的语言!

 

 

正则语言:

1) 直接给出字符就是精确匹配,普通字符不需要加\但是特殊字符需要加\

2) \d可以匹配一个数字

3) \w可以匹配一个字母或者一个数字

4) \s匹配一个空格

5) .可以匹配任意字符

6) *表示任意个字符,包含0

7) +表示至少一个字符

8) ?表示0个或者1个字符

9) {n}表示有n个字符连续的出现在一起

10) {n,m}表示连续出现n个到m个字符

11) [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;

12) [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100''0_Z''js2015'等等;

13) [a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名;

14) [a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。

15) A|B可以匹配AB,所以(J|j)ava(S|s)cript可以匹配'JavaScript''Javascript''javaScript'或者'javascript'

16) ^表示行的开头,^\d表示必须以数字开头。

17) $表示行的结束,\d$表示必须以数字结束。

js也可以匹配'jsp',但是加上^js$就变成了整行匹配,就只能匹配'js'了。

  比如

    '00\d'可以匹配'007',但无法匹配'00A'

    '\d\d\d'可以匹配'010'

'\w\w'可以匹配'js'

 

使用表达式正则

1)字符产字面量的方式

2)正则表达式对象构造函数方式

使用第二种写法,因为字符串的转义问题,字符串的两个\\实际上是一个\

  var re = /^\d{3}\-\d{3,8}$/;

  re.test('010-12345'); // true

  re.test('010-1234x'); // false

  re.test('010 12345'); // false


正则表达式的妙用,切分字符串

'a b   c'.split(' '); // ['a', 'b', '', '', 'c']

嗯,无法识别连续的空格,用正则表达式试试:

'a b   c'.split(/\s+/); // ['a', 'b', 'c']

无论多少个空格都可以正常分割。加入,试试:

'a,b, c  d'.split(/[\s\,]+/); // ['a', 'b', 'c', 'd']

再加入;试试:

'a,b;; c  d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值