美文网首页
正则表达式

正则表达式

作者: 小铮冲冲冲 | 来源:发表于2021-01-16 15:47 被阅读0次

正则表达式用于定义一些字符串的规则
计算机可以通过正则表达式,来检查一个字符是否符合规范
或者将字符串中符合规则的内容提取出来

创建正则表达式的对象

var 变量= new RegExp("正则表达式","匹配模式");
var reg= new RegExp("a","i");

使用typeof检查正则对象,会返回object
这个正则表达式可以用来检查一个字符串中是否含有a,严格区分大小写
在构造函数时可以传递一个匹配模式作为第二个参数
可以是i:忽略大小写g:全局匹配模式

正则表达式的方法

test()

使用这个方法可以用来检查一个字符串是否符合正则表达式的规则
如果符合则返回true,不符合则返回false

使用字面量来创建正则表达式

语法:var 变量=/正则表达式/匹配模式
使用字面量创建更加简单
使用构造函数创建更加灵活

正则表达式语法

创建一个正则表达式,检查一个字符串是否有a或b

  • 使用|来表示或者的意思
reg=/a|b/
  • []里的内容也是或的关系[ab]=a|b
  • [0-9]表示任意数字
  • [a-z]表示任意小写字母
  • [A-Z]表示任意大写字母
  • [A-z] 表示任意字母

检查一个字符串中是否含有abc或adc或aec

reg=/a[bde]c/;
  • [^ ]表示除了(查找不在括号内的字符)
reg=/[^ab]/
console.log(reg.test("abc"));
//true

字符串与正则相关的方法

split()

可以将一个字符串拆分为一个数组
该方法可以传递一个正则表达式作为参数,这样方法会根据正则表达式去拆分字符串,这个方法即使不指定全局匹配也会全部拆分

var str=1a2b3c4d5e;
var result=str.split(/[A-z]/);
//"1,2,3,4,5"
search()

可以搜索字符串中是否含有指定内容
如果搜到指定内容,则会返回第一次出现的索引,没搜到则返回-1
该方法可以接收一个正则表达式作为参数,然后会根据正则表达式去检索字符串,search只会查找第一个,不能全局匹配。

var str="hello abc hello abc";
result=str.search("abc");//6
match()

可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
默认情况下我们使用match只会找到第一个符合要求的内容,找到后就会停止检索
我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
可以为一个正则表达式设置多个匹配模式,且顺序无所谓
match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果

replace()

可以将字符串中指定内容替换为新的内容
参数为被替换的内容和新的内容
默认只会替换第一个

var result=str.replace(/[a-z]/gi,"")
//删除字符串中的小写字母

量词

通过量词可以设置一个内容出现的次数
量词只对它前面的一个内容起作用

  • {n}表示出现n次
  • {m,n}表示出现m到n次
  • {m,}表示出现m次以上
    另外三个符号也可以表示
    1.+ 至少一个,相当于{1,}
    2.* 0个或多个,相当于{0,}
    3.? 0个或一个,相当于{0,1}
检查一个字符串的开头和结尾

1.^ 表示开头
2.$表示结尾
如果在正则表达式中同时使用^$则要求字符串必须完全符合正则表达式
创建一个正则表达式来检查一个字符串是否是手机号
手机号规则
1.以1开头
2.第二位3~9任意数字
3.三位任意数字9个

var phoneReg=/^1[3-9][0-9]{9}$/

转义字符

  • \b
    匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

  • \B
    匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

  • \d
    匹配一个数字字符。等价于 [0-9]。

  • \D
    匹配一个非数字字符。等价于 [^0-9]。

  • \f
    匹配一个换页符。等价于 \x0c 和 \cL。

  • \n
    匹配一个换行符。等价于 \x0a 和 \cJ。

  • \r
    匹配一个回车符。等价于 \x0d 和 \cM。

  • \s
    匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

  • \S
    匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

  • \t
    匹配一个制表符。等价于 \x09 和 \cI。

  • \w
    匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。

  • \W
    匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。

电子邮件的正则

hello . nihao @ abc .com .cn
任意数字字母下划线 . 任意数字字母下划线 @ 任意字母数字 . 任意字母(2-5位). 任意字母(2-5位)

var emailReg= /\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}/;

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/yfewaktx.html