【JS】正则表达式
Pinkjun / 2020-11-07 / 软件技术 / 阅读量 333

正则表达式


1. 邮件的规则:
    前面是XXXX
    跟着一个@
    后面跟XXXX
    .com或其他的后缀

2. 正则表达式用于定义一些字符串的规则:
    计算机可以根据正则表达式,来检查一个字符串是否符合规则
    获取将字符串中符合规则的内容提取出来

3. 创建正则表达式的对象
语法:
    var 变量 = new RegExp("正则表达式","匹配模式");
    使用typeof检查正则对象,返回object
    
    var reg = new RegExp("a"); 
    // 可以检查字符串是否含有a,区别大小写
    var reg = new RegExp("a,"");
    // 在构造函数中可以传递一个匹配模式,作为第二参数
        i 忽略大小写
        g 全局匹配模式

4. 正则表达式的方法:
    test()
    使用这个方法可以检查一个字符串是否符合正则表达式的规则,
    符合返回true,不符合返回false

===============================================================================

正则语法

1. 使用字面量创建正则表达式
    语法:var 变量 = /正则表达式/匹配模式

    字面量创建简单,构造函数创建更加灵活

例1:创建正则表达式来检查字符串是否含有a或b
    reg = /a|b/

例2:创建正则表达式来检查字符串是否有字母
    reg = /[A-z]/
    “[]”里的内容也是或的关系 
    “[a-z]”任意的小写字母

例3:创建正则表达式来检查字符串是否含有abc或adc或aec
    reg = /a[bde]c/

2. “[^X]”表示除了X

===============================================================================

字符串和正则相关的方法

1. split()可以将字符串拆为数组
方法中可以传递一个正则表达式作为参数,方法可根据表达式拆分字符串
    根据任意字母拆分字符串
        split(/[A-z]/);
指不指定全局匹配,效果一样

2. search()可以搜索字符串中是否含有指定内容
    如果搜到指定内容,则会返回第一次出现的索引,如果没有搜到会出现-1
    设置全局匹配没有效果,只搜索第一个

3. match()从字符串中提取出多个指定内容
    默认情况下match()只会找出第一个符合要求的内容,然后停止搜索,使用全局匹配即可全部提取出
    match()会将匹配的内容封装到一个数组中返回,即使只查询到一个结果

4. replace()可以将指定的内容替换
    参数:1. 被替换内容  2. 新的内容

===============================================================================

正则表达式语法one

1. 检查字符串是否含有n个a
    var reg = /a{n}/;

2. 检查字符串是否含有n个ab
    var reg = /(ab){n}/;

3. 检查字符串是否含有a(b……)c
    var reg = /ab{1,n}c/;

4. 检查一个字符串的开头或结尾
    ^表示开头 
    var reg = /^x/;
    $表示结尾
    var reg = /x$/;
    即使开头又是结尾,必须完全符合
    var reg = /^x$/

5. 检查手机号正则规则
    第一位是1
    第二位是是3-9任意数字
    第三位以后任意9位数字
    var reg = /^1[3-9][0-9]{9}$/

量词
    通过量词可以设置一个内容出现的次数
    量词只对它前面的一个内容起作用
    {n}正好出现n次    {m,n}出现m~n次    {m,}出现m次以上
    n+至少一个    n*零个或多个        n?零个或一个

===============================================================================

正则表达式语法two

1. 检查字符串中是否有“.”
    直接写“.”代表除了换行和结束符的所有字符,使用转义字符
    注意:使用构造函数时,由于参数是字符串,而\是转义字符。
    var reg = /\./;
    var reg = new ReExp("\\.");

2. 
\w 任意字母、数字、下划线[A-z0-9]
\W 除了字母、数字、下划线[^A-z0-9]
\d 任意的数字[0-9]
\D 除了数字[^0-9]
\s 空格
\S 除了空格
\b 单词边界
\B 除了单词边界

3. 用正则表达式来检查字符串是否含有单词Apple
    (X) reg = /Apple/ 如果是Apples依然正确
    (√)reg = /\Apple\b/ 如果是Apples不正确

4. 检查字符串是否有空格,自动去除空格
    str.replace(/\s/g,"");  //去除全部空格
    str.replace(/^\s*/,"");  //去除全部空格
    str.replace(/\s*$/,"");  //去除全部空格
    str.replace(/^\s*|s*$/g,"");  //去除全部空格

===============================================================================

电子邮件正则表达式

1. 开头:任意字母、数字、下划线  “.”任意字母、数字、下划线
2. 中间:@
3. 结尾:任意字母、数字  “.”任意字母、数字

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

var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/; 
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
1 + 9 =
快来做第一个评论的人吧~