正则篇

正则表达式是一个描述字符规则的对象


创建表达式

// 构建函数构建
var reg = new RegExp('a','ig');
/*
* 'a' 正则的规则
* g 执行全局匹配
* i  代表部分大小写
*/

// 字面量创建
var reg = /study/; // 不带修饰符
var reg = /study/ig; // 带修饰符

正则对象下的正则使用

reg.test(str) 是否包含这个正则对象.返回的值 true/false

console.log(/a/i.test('ABC')); // true
console.log(/a/.test('ABC')); // false

reg.exec(str) 从左到右取第一个符合的正则。返回值 找到则返回被找到的值(只能取出一个匹配值);如果未发现匹配则返回null

console.log( /a/.exec('Baa') ); // ["a", index: 1, input: "Baa", groups: undefined]
console.log(  /a/.exec("B") );  // null

字符串对象下的正则使用

str.match(reg) 可在字符串内检索指定的值,或者找到多个正则的匹配。 返回值 数组

'abcabc'.match(/a/); // ["a", index: 0, input: "abcabc", groups: undefined]

'abcAbc'.match(/a/gi); // ['a','A']

'abcabc'.match(/A/g); // null

str.search(reg) 用于检索字符串中指定的子字符串,活检索与正则表达式相匹配的子字符串。返回值 有则返回第一个值的下标值(忽略g,不执行全局),否则返回-1

'abcabc'.search(/b/); // 1

str.replace(reg) 用于在字符串中替换另一些字符

'abcabc'.replace(/b/, 'x'); // axcabc

'abcabc'.replace(/b/g, 'x'); // axcaxc

str.split(reg) 用于把一个字符串分割成一个数组(忽略g,本身自带g的功能)

'abcabc'.split(/b/); // ['a' , 'ca', 'a']

'abcabc'.split(/d/); // ['abcabc']

方括号

[.] 可视为或; 如 [abc] =>a或b或c

'bac'.match(/[ab]/); //  ["b", index: 0, input: "bac", groups: undefined]

'bac'.match(/[ab]/g); // ['b', 'a']

[^.] 可视为非;如[^abc] => 除了abc以外

'bac'.match(/[^ab]/g); // ['c']

'bac'.match(/[^ab]/) // ["c", index: 2, input: "bac", groups: undefined]

'bac'.match(/[^abc]/) // null

'bacd'.match(/[^ab]/) // ["c", index: 2, input: "bacd", groups: undefined]

[0-9] 数字1-9 [a-z] 小写字母a-z [A-Z] 大写字母A-Z [A-z] a-z不区分大小写

'a1a2a3'.replace(/[1-9]/g, '=') // a=a=a
'a1a2a3'.replace(/[a-z]/g, '=') // =1=2=3
'a1a2A3'.replace(/[A-Z]/g, '*') // a1a2=3
'a1A2a3'.replace(/[A-z]/g, '*') // =1=2=3

元字符

元字符大白话个人理解
.占位符任意一个字符
\w单词字符A-Z a-z 0-9
\W非单词字符+ - / \ [ ] 等
\d数字0-9
\D非数字除了0-9
\s空白字符空格 tab \n
\S非空白字符
\b单词边界单词的头尾 空白字符
\B非单词边界
\n换行符
\r回车符
\t制表符

量词

元字符大白话
n+匹配1次或者多次(至少1次)
n*匹配0次或者多次(非1次)
n?匹配0次或者1次
n{x}匹配连续x个
n{x,y}匹配连续x-y个之间
n{x,}匹配连续至少 x个
^n匹配以n开头
n$匹配以n结尾

括号

括号为捕获

 /(a)b(c)/.exec("abc") // ["abc", "a", "c", index: 0, input: "abc", groups: undefined]

a1 或者c3

"a1b2C3".replace( /(a1|c3)/, "*") // *b2C3

匹配 ac 的 a

'abac'.match( /a(?=c)/ ) // ["a", index: 2, input: "abac", groups: undefined]

匹配 除 ac 的 a 以外 的 a

'abac'.match(/a(?!c)/ ) // ["a", index: 0, input: "abac", groups: undefined]

常用正则

可以跳转到 常用正则私密篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值