正则
正则是一种处理字符串的规则;
JS中的正则 一种引用数据类型; RegExp
正则的编写方式 :
字面量的方式: /zhufeng/
实例的方式: new RegExp('zhufeng') 当正则中的一些字符需要是变量的时候;才会选择这种方式
正则的两种用途
用于匹配 test 编写一个正则(制定了一套规则);去测试某个字符串是否符合这个规则;
用于捕获 exec 编写一个正则(制定了一套规则); 去把某个字符串中符合这个规则的字符获取到
var reg = /zhufeng\d+/ : 斜杠中间的 zhufeng 我们称为元字符;
元字符可以分为:
有特殊含义的元字符
普通元字符
有特殊含义的元字符:
\ 转义字符
\d 0-9之间的数字
\D 除了0-9的任意字符
\w 数字 字母 下划线
\W 除了 数字 字母 下划线的任意字符
^ 以什么字符开头
$ 以什么字符结尾
. 代表除了换行以外的所有字符
\n 代表换行
x|y x或者y
[xyz] x或者y或z
[^xy] 除了xy的任意字符
[a-z] a到z的任意字符 小写的英文字母
[^a-z] 除了a-z的任意字符
() 分组和提升优先级
(?:) 只匹配不捕获
(?=) 正向肯定预查
(?!) 正向否定预查
量词元字符: 都是用在其他元字符后边的; /zhufeng{3}}/ zhufenggg
? 前边的字符出现 0或1次;
+ 前边的字符出现 1或多次;
* 前边的字符出现 0或多次;n
{n} 前边的字符出现 n次;
{n,m} 前边的字符出现 n到m次;
{n,} 前边的字符出现 n到多次;
修饰符:用在正则外边的 /abc/i
i ignoreCase : 忽略大小写
m multiline 多行匹配
g global 全局匹配
var str = '珠峰666';
var reg = /\d/; // 只要字符串中含有数字 即可
console.log(reg.test(str)) // true [].push(7)
console.log(reg.test('werwf2ergdfg'))//true
console.log(reg.test('aefasdfsdfsf'))//false
console.log(reg.test('3453245254')) // true */
/* var reg = /\d?/; // 数字出现0或1次 字符串有没有数字都满足情况
console.log(reg.test('zhufeng666')) // true
console.log(reg.test('werwf2ergdfg'))//true
console.log(reg.test('aefasdfsdfsf'))//true
console.log(reg.test('3453245254')) // true
*/
/* var reg = /\d{2,4}/; // 字符串中有没有连续2个或者3个数字 或者4个数字
// /\d\d/ /\d\d\d/ /\d\d\d\d/
console.log(reg.test('zhufeng666')) // true
console.log(reg.test('werwf2ergdfg'))//false
console.log(reg.test('aefasdfsdfsf'))// false
console.log(reg.test('3453245254')) // true */
/* var reg = /\d{2}/; // 字符串中 有两个连续的数字 即可
console.log(reg.test('zhufeng666')) // true
console.log(reg.test('werwf2e3rgdfg'))// false
console.log(reg.test('aefasdfsdfsf'))// false
console.log(reg.test('3453245254')) // true */
/* var reg = /^\d/; // 要求字符串是 以数字开头的
console.log(reg.test('zhufeng666')) // false
console.log(reg.test('werwf2e3rgdfg'))// false
console.log(reg.test('aefasdfsdfsf'))// false
console.log(reg.test('3453245254')) // true */
var reg = /^\d{2,3}/; // 要求 字符串 是以 两个或者三个数字开头的 即可
console.log(reg.test('1zhufeng666')) // false
console.log(reg.test('22werwf2e3rgdfg'))// true
console.log(reg.test('432aefasdfsdfsf'))// true
console.log(reg.test('3453245254')) // true