正则的定义及语法

正则的定义
  • 正则就是规则,用来操作字符串的,判断字符串格式是否正确。
  • 正则就是用来验证字符串的。
正则写法
  • 语法:正则字面量(字符串) var reg = // reg就可以验证字符串。
正则对象
  • 语法:创建正则对象 对象:new RegExp(模式,修饰符);
正则对象和正则字符串的区别
  • (1)正则对象里:要使用双斜杠 \w ,\d, 转义时,也要双 \
  • (2)正则对象里:正则是以 “” 存在的
正则元字符:
    .除了换行和行结束符,任意单个字符 
    \w 查找单词字符。 (字母,数字,下划线)
    \W 查找非单词字符。 
    \d 查找数字。 
    \D 查找非数字字符。 
    \s 查找空白字符。 
    \S 查找非空白字符
     \u4e00-\u9fa5 匹配汉字的
     \b 匹配单词边界。  
     \B 匹配非单词边界
量词
  • 最少0次,多了不限 ,0个或多个
  • +最少一次 多了不限,1个或多个
    • ?{n} 匹配 n个 最少0个,最多1个,(0个或一个)
    • {n,} 匹配最少 n 个 {n,m} 匹配最少n 个,最多 m 个
    • {,m} 匹配最多m个
定界符:
  • $ 结束符 ^ 开始符
  • g 表示全局 i:不区分大小写 m:表示多行
  • [^abc]:就表示非的意思
  • ?=n 前面的字符后紧跟着n的字符串 a?=x ax
  • ?!n 前面的字符后没有n的字符串 a?!x ab
字符类
[abc]  表示abc里的任意一个字符
    [0-9]  匹配0到9之间的任意一个数字
    [a-z]  匹配a到z之间的任意一个小写字符
    [A-Z]  匹配A到Z之间的任意一个大写字符
    [A-z]  匹配A到z之间的任意一个大小写字符
        [A-z0-9]  匹配任意一个字母(大小写字母)或数字
    [A-z0-9_]  匹配字母数字下划线
    [a-z0-9]  匹配a到z或0到9之间的任意一个字符
    [0-37-9]  匹配0到3或7到9之间的任意个亿字符    
        [ \u4e00-\u9fa5] 匹配任意一个汉字的
    [^]:[^abc]  匹配除了abc以外的任意一个字符
    ():(red|green|blue)   匹配red    green  blue之间的任意一个
RegExp方法
  • 1.****正则对象.exec(字符串):他返回的是数组,其中存放的结果,如果未找到,则他的返回值是null;如果字符串里有匹配的字符串就返回第一个匹配的字符.
  • 2.正则对象.test(字符串):返回的是boolean 匹配正确是true,匹配失败是false;
  • 3.正则对象.lastIndex :该属性存放一个整数,他声明的是上一次匹配文本之后的第一个字符位置。如果不设置全局时,就不存在此属性。
支持正则表达式的String
    • 1.字符串.search(正则模式):类似于indexOf :返回第1个能匹配的下标,找不到返回-1;而且它会忽略全局
      • 例:字符串.search(/[0-9]/i) 返回第一个匹配的下标,i修饰符无效。
    • 2.***字符串.match(正则模式) :返回的是数组,
      • 全局匹配时,返回的是结果组成的数组。 不是全局时,返回第一个匹配的结果数组。类似于exec的返回结果
      • 例:字符串.match(/[0-9]/) 返回第一个匹配的结果
      • 例:字符串.match(/[0-9]/g) 返回所有匹配的结果
    • 3.字符串.replace(正则模式,字符串,函数)
      • 语法: 字符串.replace(/i/g,function(){}); 类似于迭代
        return * 在这是把匹配的结果换成*
    • ***在正常情况下,replace只能替换1个,如果加上全局时,就表示全部都被替换掉了。
    • 4.字符串.split(模式) :表示切割方法 默认是全局匹配。
posted @ 2023-06-30 12:37  growflowers  阅读(192)  评论(0编辑  收藏  举报