85~90 正则表达式
用于定义一些字符串的规则,从而检查字符串是否符合规则,或者将字符串中符合规则的内容提取出来。
创建
(1)创建正则表达式对象的方式
var reg = new RegExp ( '正则表达式', '匹配模式');
或用字面量方式创建: reg = /正则表达式/匹配模式;
检测
(2)正则化表达式的方法
reg.test ('...')
检查字符串中是否含有正则表达式的内容,若符合就返回true,否则返回false;
按照“匹配模式”来检查, 'i' 表示忽略大小写,'g' 表示全局匹配模式(区分大小写),'gi' ;
一个正则表达式可以设置多个匹配模式,且不计较书写顺序。
(3)正则表达式中的特殊语法:
(字符类)
[..] —— 或,是否含有中括号内的任意一个字符,如 [ab] == a|b、[A-z] 任意字母;
[^..]—— 是否含有除了中括号以外的的字符;
(量词符)
..{n} —— 通过数字量词n表示前面一个内容出现的次数,如 a{3}、(ab){3};
..{m,n} —— 前面一个内容出现m~n次,如果n不写,就表示出现m次以上;
..+ —— 前面一个内容出现一次以上,相当于..{1,};
..* —— 前面一个内容出现任意次,相当于..{0,};
..? —— 前面一个内容出现0或1个,相当于..{0,1};
(边界符)
^.. —— 表示以..开头; ..& —— 表示以..结尾;
^..$ —— 同时使用时要求字符串完全符合中间的正则表达式。
//去除开头的空格
str = str.replace(/^\s*/,'');
//去除结尾的空格
str = str.replace(/\s*&/,'');
//替换开头和结尾的空格
str = str.replace(/^\s* | \s*&/g,'');
(4)支持正则表达式的String对象的方法
即支持以正则表达式作为参数,如 str.split ( /[A-z]/ ) ,表示以字母为分隔划分字符串;
还有 str.search( )、str.match( )、str.replace( ),这三个方法默认只搜索、匹配或替换第一个符合条件的字符,所以想要操作全部的字符,要在正则表达式后面要加上全局匹配模式‘g’。(search除外,只能搜索第一个)
黑马
概述
正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式,在 JS 中也是一种对象;
主要应用:验证(匹配)表单的输入、替换敏感词、提取字符串中特定的部分。
特殊字符
1. 边界符
^ ( /^abc/ ) | 匹配开头的字符(以指定字符开头) |
$ ( /abc$/ ) | 匹配结尾的字符(以指定字符结尾) |
/^abc$/ | 精确匹配(必须与正则表达式相同) |
2. 字符类
[ ] —— 或,是否含有中括号内的任意一个字符,如 /[A-z0-9]/ 匹配任意字母和数字; 其中 - 是一个范围符;
[^..] —— 取反,是否含有除了中括号以外的的字符;
3. 量词符
..+ —— /a+/ 前面一个字符出现一次以上,相当于..{1,};
..* —— 前面一个内容出现任意次,相当于..{0,};
..? —— 前面一个内容出现0或1个,相当于..{0,1};
..{n} —— 通过数字量词n表示前面一个内容出现的次数,如 a{3}、(ab){3};
..{m,n} —— 前面一个内容出现m~n次,如果n不写,就表示出现m次以上;
应用:设定某个模式出现的次数 —— /^[a-zA-Z0-9_-]{6,16}$/ 表示只能输入大小写字母、数字、下划线、短横线 这个范围的字符,并且个数在6-16之间。
可以用小括号改变优先级。
3. 预定义类
\d | 匹配0-9之间的任一数字,相当于 [0-9] |
\D | 匹配0-9以外的字符,相当于 [^0-9] |
\w | 匹配任意字母、数字和下划线,相当于 [A-z0-9_] |
\W | 匹配字母、数字和下划线以外的字符,相当于 [^A-z0-9_] |
\s | 匹配空格(包括换行符、制表符等),相当于 [\t\r\n\v\f] |
\S | 匹配f非空格的字符,相当于 [^\t\r\n\v\f] |
10.9