JS-正则表达式对象/RegExp
Posted 是非_大道克己
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-正则表达式对象/RegExp相关的知识,希望对你有一定的参考价值。
创建正则表达式
-
隐式创建
let regx = /正则表达式/修饰符 ---> /pattern/attributes // pattern(正则表达式) 是一个字符串,指定了正则表达式的模式或其他正则表达式。 /* attributes(修饰符) i: 执行对大小写不敏感的匹配。(忽略大小的匹配) g: 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 m: 执行多行匹配。 (用的很少,基本不会被用到) //书写修饰符的时候 没有顺序要求 igm img gim 都一样 一般我们都只使用ig
-
显示创建
let regx = new RegExp(pattern, attributes); // pattern(正则表达式) 是一个字符串,指定了正则表达式的模式或其他正则表达式。 // attributes(修饰符) // 注意:在使用显示创建正则表达式的时候注意使用元字符的时候要记得转移"\d{4}"
?
正则表达式的属性
/* 正则表达式的属性: 1 global / RegExp对象是否具有标志 g 2 ignoreCase / RegExp 对象是否具有标志 i 3 multiline / RegExp 对象是否具有标志 m 4 lastIndex / 一个整数,标示开始下一次匹配的字符位置 5 source / 正则表达式的源文本 */
正则表达式的方法
/* 正则表达式的方法: 1 compile() 2 exec() 3 test() */ //compile() 编译正则表达式 regx.compile(/[A-Z]/g); regx = /[A-Z]/g; //当我们需要重新设置匹配模式的时候,可以直接给正则表达式赋值 或则使用 它的compile(); //重新设置新的匹配模式时,它的lastIndex属性会重置为0(重新从字符串的头一个位置开始) //exec() 检索字符串中指定的值。返回找到的值,并确定其位置 while(result = regx.exec(String)){ console.log(result[0]); //result[0]取出匹配当前正则表达式的字符创的值 } //exec()执行一次后,lastIndex会指向符合当前正则表达式的字符创的下一个字母的位子 //exec() 如果找到有值表示 true ;如果没有找到 返回null 表示false //exec() 多用于查询一段字符中符合正则表达式的字符串 可能执行多次 //test() 检索字符串中指定的值。返回 true 或 false if(regx.test(String)){ } //test()多用于 接收前页面据判断是否合法,在执行牟宗操作
正则表达式的量词
//量词: 就是用表示数量的语法 a{X} //表示匹配连续的X个a字母 a{X,Y} //表示的最少x个连续的a, 最多y个连续的a a{X,} //至少出现 x次.. //量词是表示紧挨着它的那个字符的次数。 //例如: /ax{3,5}/ 表示的是 x出现的次数 不是ax次数 // 如果要连续使用 例如(ax)两个字符一起出现的次数 则需要给他们分在一个组(使用括号)里面 //写法为:(ax){3,5} //axaxax axaxaxax axaxaxaxax n+ //+表示:1个或多个 ==> n{1,}的简写 //let regx = /ax+/ig; // ax axx axxxx axxxx axxx..... n* //*表示 0个或则多个 ==> n{0,}的简写 //let regx = /ax*/ig; // a ax axx axxx axxxx axxxx....... n? //?表示 0个或则1个 ==> n{0,1}的简写 //let regx=/ax?/ig; // a ax ^ //以什么开头 //let regx = /^ab+/ig //以字母a开头后面有1个或则多个b $ //以什么结尾 //如果 开头和结尾一起使用则表示整个字符创要符合正则表达式 就没用必要使用 g ?=n //量词匹配任何其后紧接指定字符串 n 的字符串。 //let regx = /stu(?=id)/ig; ?!n //匹配任何其后 不是 紧接指定字符串 n 的字符串。 //let regx = /stu(?!id)/ig; () //分组 | //或则 let regx = /^(ab)|(ac)d{3}/ig; //分组为 /^ab/ 或则 /acd{3}/ & //与 [] //方括号 用于查找某个范围内的字符: [0-9] ==>> [0123456789] //注意: 如果^ 是写在方括号[]里面的话 它表示:取反 //[^abc] 表示:不是a,或则 b 或则c //只能是数字的的 三种表示均可 let regx=/(0|1|2|3|4|5|6|7|8|9){3}/ig; let regx=/[0123456789]/ig; let regx =/[0-9]/ig;
正则表达式元字符
元字符 | 描述 | 元字符 | 描述 |
---|---|---|---|
. | 查找单个字符,除了换行和行结束符 | . | 小数点 |
w | W | 查找非单词字符 | |
d | 查找数字字符 | D | 查找非数字字符 |
s | 查找空白字符 | S | 查找非空白字符 |
匹配单词边界 | B | 匹配非单词边界 | |