正则表达式

285 阅读2分钟

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式的作用: 处理字符串,相当于过滤的性质, 找到符合自己的字符集; 获取正则的两种方式: 字面量的形式: /正则体/修饰符; 字面量的形式无法拼接; 构造函数的形式: var redRexp(‘’ ’’, 修饰符) 构造函数(可以拼接成正则体);

var str = xxx.value;
/str/g
var reg = regExp(‘str’, g);

#元字符: 数字 \d; 仅限于0 到9 返回小数

var reg3 = /^\d+\ . \d+$\/

\D 匹配一个非数字 \s 匹配任何不可见字符空白符,包括空格、制表符、换页符等等。等价于[ \f \n \r \t \v] 换行 制表符(tab键) 空格(space键) \n 换行 \r 换行(有时不能用) \p 制表符 \v 制表符 \S 与 \s作用相反 \b 匹配单词边界 两个单词之间用其他符号隔开时(一般是空格或其他标点符号) \B 与\b作用相反 \w 匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_ ]”,这里的"单词"字符使用Unicode字符集 \W 与\w作用相反 可以匹配一个汉字

 var reg4 = /\W+/ 
console.log(reg4.test((‘返回’))  //返回 true;

#起数量限制作用的元字符

  • (0到多次)
    ?(0或1次)
  • (1或多次) {x,y}x到y的区间
    {x} 代表出现了x次; \转意 (?=) 向前匹配 (?<=) 向后匹配 . 代表匹配任何字符
  • 代表任意数量 ^放在[]外边是以什么为开始的意思 放在[ ]里边代表非 $ 以什么结尾的意思 []集合 集合中的元素只取一个 多个元素是或的关系[0-9] 集合里边写特殊意义的字符代表他的本意 不可以写\ 会报错;
reg5 = /\w\d/

代表一个字符和数字

reg6 = /([a-z])(\d)/

##等价: 等价是等同于的意思,表示同样的功能,用不同符号来书写。 ?,*,+,\d,\w 都是等价字符 ?等价于匹配长度{0,1}; *等价于匹配长度{0,} ; +等价于匹配长度{1,}; \d等价于[0-9]; \D等价于[^0-9]; \W等价于[^A-Za-z_0-9]; #正则的用法: 1.字符串的replace方法: 字符串.replace(正则体, 新的替换对象); 2.字符串的match方法: 未找到符合条件的返回null; 如果匹配到了1个 返回一个数组, 第一项是匹配到的字符串 input:返回的是原字符串, index:返回的是对应的下标 如果找到多个 返回的则是找到的所有的满足条件的字符集组成的数组; 3字符串的search方法: 返回找到第一个找到的字符集的下标; 4正则的test方法: 正则体.test(字符串); 返回布尔值 代表了是否找到目标字符串; 满足正则体的返回true 不满足的返回false 5正则的exec方法: 正则体.exec(字符串); 没有符合正则的条件时 返回null 找到时,返回一个数组,如果匹配到了1个 返回一个数组, 第一项是匹配到的字符串 input:返回的是原字符串, index:返回的是对应的下标