正则表达式

正则

正则表达式是什么

正则表达式是用于字符串匹配的 (四个支持正则的方法 search 查找 下标 macth 查找 数组 split 切割 replace 替换)

正则表达式对象声明

1.new关键词声明

var regx = new RegExp("a")

2.字符模板 声明 (*)

var regex = /a/gi

g 全局搜索

i 忽略大小写

正则对象的方法

exec 执行方法 他返回对应的执行对象数组 (没有匹配的返回null)

test 判断是否匹配 (boolean 匹配为true 不匹配为false)

正则表达式的使用
^ 开头
$ 结尾
[] 表示其中一个元素
var regx = /^[abcdef]$/  //表示其中一个元素 a | b  | c | d | e | f
var str = "a"
var str1 = "b"
var str2 = "c"
var str3 = "abc" 
console.log(regx.test(str));//true
console.log(regx.test(str1));//true
console.log(regx.test(str2));//true
console.log(regx.test(str3));//false
{} 表示对应的个数 (相当于重复写n次)
var regx = /^[abc]{2}$/  //俩个元素
var regx1 = /^[abc]{2,3}$/  //俩个到三个
var regx2 = /^[abc]{2,}$/  //俩个或俩个以上
var str = "accc"
var str1 = "bc"
var str2 = "cb"
var str3 = "abc" 
console.log(regx.test(str));//false
console.log(regx.test(str1));//true
console.log(regx.test(str2));//true
console.log(regx.test(str3));//false

console.log(regx1.test(str));//false
console.log(regx1.test(str1));//true
console.log(regx1.test(str2));//true
console.log(regx1.test(str3));//true

console.log(regx2.test(str));//true
() 分组 集成到一起
var regx = /^([ab][cd]){2}$/  //acac adad bcbc bdbd
var str = "abcd"
var str1 = "bbcc"
var str2 = "ab"
var str3 = "ad"
console.log(regx.test(str));//false
console.log(regx.test(str1));//false
console.log(regx.test(str2));//false
console.log(regx.test(str3));//false
字母的表示

[A-Za-z]

//字母的表现 ascii码进行排序
var regx10 = /^[A-z]$/ //匹配大写的字母和小写的字母 另外包含对应的字符
var regx10 = /^[A-Za-z]$/ //匹配大写的字母和小写的字母
数字的表示

[0-9]

var regx11 = /^[0-9]$/ //匹配0-9的数字
// \d 小写表示这个东西 \D 大写表示不是这个东西
var regx11 = /^\d$/  //匹配0-9的数字
var regx12 = /^\D$/  //不是数字的内容
\d 表示数字
\D 表示非数字
空白字符
\s 表示空白字符 空格回车制表符等
\S 表示非空白字符串
所有的字母数字加下划线 \w
var regx16 = /\w/
\W 不是字母数字下滑线

. 表示所有的内容

var regx15 = /./
修饰符

+ 一个到多个相当于 {1,}

? 零个到一个 相当于 {0,1}

* 零个到多个相当于 {0,}

注意事项:点号在对应的[]中显示为. 而不是所有的内容 在对应的{} 后面不能直接接修饰符 如果要接先要分组括起来

中文匹配的正则

[\u4e00-\u9fa5]

针对于上面的修饰符我们要将他变成对应的字符 转义符号 \

需要转义的内容 [] () {} . + ? / ^ $

// 匹配 (.) 使用\来进行转义 
// 需要转义的内容 [] () {} . + ? /  ^ $ ..
var regx = /\(\.\)/
console.log(regx.test("(.)"));//true
console.log(regx.test("a"));//false
捕获性分组 及 非捕获性分组 ?: 非捕获性 体现到对应的数组 exec执行完的数组里面(默认会捕获)
var pattern = /(\d+)(?:[a-z])/;    //一个或多个数字,和一个a-z的字母
var str = "123abc";
console.log(pattern.exec(str)); //"123a,123,a" //如果没有加上?: 就有a 加上了就没有了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值