正则正则表达式是什么
正则表达式是用于字符串匹配的 (四个支持正则的方法 search 查找 下标 macth 查找 数组 split 切割
replace 替换)
正则表达式对象声明
1.new关键词声明
2.字符模板 声明 (*)
g 全局搜索
i 忽略大小写
正则对象的方法
exec 执行方法 他返回对应的执行对象数组 (没有匹配的返回null)
test 判断是否匹配 (boolean 匹配为true 不匹配为false)
正则表达式的使用
^ 开头
$ 结尾
[] 表示其中一个元素
{} 表示对应的个数 (相当于重复写n次)
var regx = new RegExp("a")
var regex = /a/gi
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
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"() 分组 集成到一起
字母的表示
[A-Za-z]
数字的表示
[0-9]
\d 表示数字
\D 表示非数字
空白字符
\s 表示空白字符 空格回车制表符等
\S 表示非空白字符串
所有的字母数字加下划线 \w
\W 不是字母数字下滑线
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
//字母的表现 ascii码进行排序
var regx10 = /^[A-z]$/ //匹配大写的字母和小写的字母 另外包含对应的字符
var regx10 = /^[A-Za-z]$/ //匹配大写的字母和小写的字母
var regx11 = /^[0-9]$/ //匹配0-9的数字
// \d 小写表示这个东西 \D 大写表示不是这个东西
var regx11 = /^\d$/ //匹配0-9的数字
var regx12 = /^\D$/ //不是数字的内容
var regx16 = /\w/. 表示所有的内容
修饰符
+ 一个到多个相当于 {1,}
? 零个到一个 相当于 {0,1}
* 零个到多个相当于 {0,}
注意事项:点号在对应的[]中显示为. 而不是所有的内容 在对应的{} 后面不能直接接修饰符 如果要接先
要分组括起来
中文匹配的正则
[\u4e00-\u9fa5]
针对于上面的修饰符我们要将他变成对应的字符 转义符号 \
需要转义的内容 [] () {} . + ? / ^ $
捕获性分组 及 非捕获性分组 ?: 非捕获性 体现到对应的数组 exec执行完的数组里面(默认会捕获)
var regx15 = /./
// 匹配 (.) 使用\来进行转义
// 需要转义的内容 [] () {} . + ? / ^ $ ..
var regx = /\(\.\)/
console.log(regx.test("(.)"));//true
console.log(regx.test("a"));//false
var pattern = /(\d+)(?:[a-z])/; //一个或多个数字,和一个a-z的字母
var str = "123abc";
console.log(pattern.exec(str)); //"123a,123,a" //如果没有加上?: 就有a 加上了就没有了