正则表达式的概念及作用
概念:字符串正确的规则 如身份证格式,邮箱格式,电话号码格式 电话号码格式->由1开始,后面还有10位数字
正则表达式(Regular Ession)是一个描述字符规则的对象。如:只能出现字母,只能出现数字,前三个必须是数字等
作用:前后端交互的过程中,往往有大量数据效验功能, 通过正则对象的本地字符串格式验证,可以大大提高前后端交互的效率, 降低服务器压力。
1.构造方法
var reg = new RegExp("格式字符串",["修饰符"]);
var reg = new RegExp("a");//目标字符串至少包含一个a
reg = new RegExp("aaa"); //目标字符串至少包含3个连续的a
2.字面量
var reg = /格式字符串/修饰符;
reg = /a/;//目标字符串至少包含一个a
reg = /aaa/;//目标字符串至少包含3个连续的a
通常创建正则用字面量的方式,但以下情况必须用构造方法(用到下标时)
var arr = ["heihei","haha","xixi"];
var reg = /arr[0]/; 错误的
var reg = new RegExp(arr[0]);
2.正则值的分类
1.格式字符串:
2.普通字符+特殊字符
3.普通字符:普通的字符,看起来是啥就是啥
4.特殊字符:a.单个字符 b.组合字符 c.各种括号
正则中的特殊字符:
单个字符:
^:正则开始
$ : 正则结束
. : 元字符, 表示任意一个字符
\. : 表示转义字符 \.表示.
+: 表示其前面紧挨着的字符至少出现1次 等价{1,}
*:表示其前面出现的字符至少出现过0次 等价{0,}
?: 表示其前面出现的字符至少出现过0次,至多1次 等价{0,1}
| : 表示或者
组合字符: \d : 0-9之间的任意一个数字 \d只占一个位置
\D : 除了\d
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\W : 除了\w
\s : 空格或者空白等
\S : 除了\s
括号:
{m,n}表示括号前面紧挨着的字符至少出现m个,至多出现n个
: 以b开头 至少3个a 至多5个a /^ba{3,5}&/
{m}表示括号前面紧挨着的字符只能出现m个
{m,}表示括号前面紧挨着的字符至少出现m个
[] 表示括号内的任意一个字符 [wd3h]
[a-z]表示任意一个小写字母
[^ ]表示非括号内的任意一个字符
()一般与或连用 表示优先级
[\u4e00-\u9fa5] 任意一个中文字符
正则中的相关方法及属性
1.test
功能:判断目标字符串是否满足正则对象的格式,返回布尔值
参数:test(目标字符串)
返回值:布尔值
2.exec
功能:返回满足郑泽对象的子串,存放至长度为1的数组中
参数:exec(目标字符串)
返回值:符合正则的子串,存储在长度为1的1数组中
修饰符
- g:全局
- i:忽略大小写
正则对象作为字符串函数的参数
1.search 功能:查找字符串 参数:search(正则对象) 返回值:下标
2.repace功能:替换字符串参数:repace(/字符串要替换片段/g ,“替换的字符串”)返回值:替换的新字符串。
3..match 功能:返回满足正则对象的子串,存放至数组中 参数:match(目标字符串); 返回值:复合正则的子串,存放至数组中。
字符串的扩展
在ES5中使用的是indexOf()方法,在ES6中可以使用includes(),satrsWith(),endsWith()三个方法 str.includes(参数):返回布尔值,表示是否找到了参数字符串。 str.startWith(参数):返回布尔值,参数是否在源头字符串的头部。 str.endWith(参数):返回布尔值,参数是否在源头字符串的尾部。
读字符 console.log("\u{21c56}"); 读编码 console.log(str.codePointAt(0));