正则
1、正则是什么?如何学习?
正则就是由相关元字符和修饰符组成的一个规则(一个模式/方法),用来匹配、验证或者捕获字符串中某些内容的规则(正则仅仅是用来处理字符串的)
- 元字符 -
- 修饰符 -
- 编写常用的正则 -
- 正则的验证 -
- 正则的捕获 -
- 正则的一些小实战以及一些常规方法的封装:
- myQueryURLParameter、myTrim、myFormatTime….
复习字符串中常用的方法:
- charAt / charCodeAt :根据索引获取指定位置的字符(或者字符的Unicode编码值)
str = "武汉加油!";
var res = str.charAt(0);//字符串是一个可读数据`
- String.fromCharCode([unicode编码]):通过指定的编码获取对应的字符,
code1, . . . , codeN
是要转换为字符串的 Unicode 字符值序列。如果没有给出参数,结果为空字符串。
var test = String.fromCharCode(112, 108, 97, 105, 110);
document.write(test);//spain
- substr(n,m):从索引n开始截取m个字符(m不写截取到末尾),n和m不支持负数
var Str = "武汉加油!";
var res = Str.substr(1,2);
console.log(res);//汉加
- substring(n,m):从索引n开始找到索引为m处(不包含m)
var res = Str.substring(1,2);
console.log(res);//汉
- slice(n,m):和substring一样,只是可以支持以负数作为索引(负数索引:总长度+负数索引,得到的结果就是查找的索引位置)
var res = Str.slice(0,2);
console.log(res);//武汉
- indexof / lastIndexof:找到字符在字符串中第一次或者最后一次出现位置的索引,如果没有这个字符返回的是-1(通过这个机制也可以判断当前的字符串中是否包含这个字符)
var str = "B";
var str1 = "BABEBIBOBUBABEBIBOBU";
var res = str1.indexOf(str);
var res2 = str1.lastIndexOf(str);
console.log(res);//0
console.log(res2);//18
- search:和indexOf 相同,都是获取字符出现位置的索引,只是search可以支持正则
var str = "B";
var reg = /U/;
var str1 = "BABEBIBOBUBABEBIBOBU";
var res = str1.search(reg);
var res2 = str1.search(str);
console.log(res);//9
console.log(res2);//0
- toUpperCase / toLowerCase:把一个字符串中所有字符转换成大写或者小写
var str1 = "kjfkjhakhfjhakfl";
var res = str1.toUpperCase();//变成大写
console.log(res);//KJFKJHAKHFJHAKFL
var str1 = "BABEBIBOBUBABEBIBOBU";
var res = str1.toLowerCase();//变成小写
console.log(res);//babebibobubabebibobu
- split:按照指定的分隔符,把一个字符串拆分成数组中的每一项,可以支持正则
var str = "B";
var str1 = "BABEBIBOBUBABEBIBOBU";
var res = str1.split(str);
console.log(res);//(11) ["", "A", "E", "I", "O", "U", "A", "E", "I", "O", "U"]
-
replace:把字符串中的原有字符进行替换,在不使用正则的情况下,执行一次replace,只能替换一次,这个方法也可以支持正则
字符串.replace(正则表达式,新的内容);
-
match:根据正则匹配到所有符合规则的结果,结果以一个数组来存储
字符串.match(正则表达式)
-
**localeCompare **:两个字符串之间的比较,按照每一个字符的Unicode编码值一个个比较
-
trim / trimLeft / trimRight:去除字符串的首尾空格(trimLeft去除首空格/trimRight去除尾空格),但是这个方法不兼容
-
正则的元字符只要在“/元子符/”之间包含起来的,都是正则的元字符特殊元字符
-
\ 转义字符(把有意义和没意义的字符来回转). 除了\n以外的任意字符\n 换行符
-
^ 以xxx开始
-
$ 以xxx结束
-
\d 匹配0-9之间的任意数字
-
\D:除了0-9之间数字的任意字符
-
\b 匹配一个边界
-
\w 匹配数字、字母、下划线中的任意字符
-
\s 匹配任意一个空格
-
\S 匹配任意一个非空格
-
/g 全局变量
-
/[a-z]/ a-z 或 A-Z
-
/^ [a-z]/ 以a-z开头 或 A-Z开头
文件格式检测 | /.(jpg/jpeg/bmp)$/ |
---|---|
邮政编码检测 | /d{6}/ |
邮箱格式 | /^ [a-zA-Z0-9]+@([a-zA-Z0-9] +\.)+(com/cn/net/org)$/ |
电话号码 | /^ 1[345678]+\d{9}$/ |