js-day17

2017-12-14  本文已影响0人  Rosemarry丶

A.我今天学了什么

1.正则表达式

http://www1.qdfuns.com/tools.php?mod=regex(正则表达式调试工具)

有规律的/有规则的表达式,由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式描述语句。
正则表达式常用于在一段文本中搜索、匹配或替换特定形式的文本。如:词语出现频率统计、验证字符串是否符合邮箱格式、屏蔽一篇帖子中的限制性词语等

2.定义正则表达式

所有的单个大小写字母、数字都是一个正则表达式,用以匹配单个字符,这个字符与它本身相同,如:var regexp =/abc/;
正则表达式中有些字符有特殊的语法含义,是不能直接使用的,必须使用\进行转义后才能使用
. \ / * ? + [ ] ( ) { } ^ | $

3.字符集

•   正则表达式使用如下语法匹配一个范围内的字符

 语法                含义
[abc]   匹配指定集合内的任一个字符
[^abc]  匹配不在指定集合内的任一个字符
[0-9]   匹配任一个数字
[a-z]           匹配任一个小写字符
[A-Z]   匹配任一个大写字符
[A-z]          匹配大写A到小写z的所有字符

4.预定义字符集

•   正则表达式中可以使用如下元字符引用来进行简化

语法      含义
\d  匹配一个数字
\D  匹配一个非数字
\w  匹配一个数字/字母/下划线
\W  匹配一个非数字/字母/下划线
\s  匹配一个空白符
\S  匹配一个非空白符
.   匹配除了回车和换行外的任何单个字符

5.数量词

•   正则表达式中可以使用如下特殊字符定义字符的出现频次--量词元字符

重复字符        含义
n?          匹配零次或一次字符n
n*          匹配零次或多次字符n
n+          匹配一次或多次字符n
n{x}            匹配字符n出现x次
n{x,y}  匹配字符n出现x到y次
n{x,}         匹配字符n的出现次数>=x次

6.选择和分组

•   正则表达式使用如下语法定义子表达式 分组或选择



语法                               含义
exp1|exp2           使用|进行条件选择
(exp1)                  使用()指定分组--每个分组自动获得分组号如:1、2、3、的分组号

7.指定匹配位置

•   可以使用如下字符进行指定位置的匹配


重复字符              含义
^              匹配字符串的开头
$              匹配字符串的结尾
\b             匹配单词的边界
\B             匹配单词的非边界
?=x            匹配其后紧接x的字符串
?!x            匹配其后没有紧接x的字符串

8.创建RegExp对象

创建正则表达式对象有两种方法:
直接量语法:
var regexp =/abc/attribnnutes;

调用RegExp构造方法:
var regexp = new RegExp('abc','attribute');

9.RegExp的属性

RegExp对象具有如下属性:

属性名               说明
global          (只读)RegExp对象是否具有g修饰符
ignoreCase  (只读)RegExp对象是否具有i修饰符
multiline          (只读)RegExp对象是否具有m修饰符
lastIndex          用于设置/获取下次匹配的起始位置(没有指定g修饰符的RegExp对象不能使用lastIndex属性)
source         (只读)返回模式匹配所使用的文本
$1....$9           指代最近一次搜索中某个子表达式匹配的文本

10.用于模式匹配的String方法

replace方法
strObject.replace(regexp,'string');
对字符串中特定格式的子串进行替换,返回替换后的结果。
第一个参数既可以是一个固定的子串,也可以是一个正则表达式对象

match方法
strObject.match(regexp)
返回一个或多个子串、正则表达式的匹配
与indexOf()方法类似,但是它返回匹配的值,而不是匹配字符串所在的下标

search()
strObject.search(regexp)
返回第一次出现匹配指定正则表达式子串的下标,若没有匹配则返回-1
与indexOf()作用类似,但indexOf()不支持正则表达式

split()
strObject.split(regexp,[howmany])
使用一个指定的字符串或正则表达式,对原字符串进行拆分,返回拆得的子串数组。
若指定了howmany属性,则只返回拆得的前howmany个子串
regexp.test( txt );
console.log( RegExp.$1 ); //strong

上一篇下一篇

猜你喜欢

热点阅读