加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-14 06:16:05 所属栏目:百科 来源:网络整理
导读:var reg = /pattern/flags 或者是 var reg = new RegExp(pattern,flags) 标志:i---忽略,m---多行匹配, g---全局匹配 对象字面创建方式不能字符串拼接,并且不需要转义,构造函数创建需要转义, var reg2 = new RegExp(‘d‘) // /d/ 元字符 d : 0-9之
  1. var reg = /pattern/flags 或者是 var reg = new RegExp(pattern,flags)
  2. 标志:i---忽略,m---多行匹配, g---全局匹配
  3. 对象字面创建方式不能字符串拼接,并且不需要转义,构造函数创建需要转义,

    var reg2 = new RegExp(‘d‘) // /d/

  4. 元字符

    d : 0-9之间的任意一个数字  d只占一个位置
    w : 数字,字母 ,下划线 0-9 a-z A-Z _
    s : 空格或者空白等
    D : 除了d
    W : 除了w
    S : 除了s
    . : 除了n之外的任意一个字符
    : 转义字符
    | : 或者
    () : 分组
    n : 匹配换行符
    b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
    ^ : 限定开始位置 => 本身不占位置
    $ : 限定结束位置 => 本身不占位置
    [a-z] : 任意字母 []中的表示任意一个都可以
    [^a-z] : 非字母 []中^代表除了
    [abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符
    * : 0到多个
    + : 1到多个
    ? : 0次或1次 可有可无
    {n} : 正好n次;
    {n,} : n到多次
    {n,m} : n次到m次
  5. 例子

    var str = ‘1223334444‘;
    var reg = /d{2}/g;
    var res = str.match(reg);
    console.log(res) //["12","23","33","44","44"]
    var str =‘ 我是空格君 ‘;
    var reg = /^s+|s+$/g; //匹配开头结尾空格
    var res = str.replace(reg,‘‘);
    console.log(‘(‘+res+‘)‘) //(我是空格君)
  6. 一般[]中的字符没有特殊含义 如+就表示+,但是像w这样的还是有特殊含义
    的,里面不会出现两位数,()的提高优先级功能:凡是有|出现的时候,我们一定要注意是否有必要加上()来提高优先级;()的提高优先级功能:凡是有|出现的时候,我们一定要注意是否有必要加上()来提高优先级;

    var str1 = ‘abc‘;
    var str2 = ‘dbc‘;
    var str3 = ‘.bc‘;
    var reg = /[ab.]bc/; //此时的.就表示.
    reg.test(str1) //true
    reg.test(str2) //false
    reg.test(str3) //true
    [12]表示1或者2 不过[0-9]这样的表示0到9 [a-z]表示a到z
    例如:匹配从18到65年龄段所有的人
    var reg = /[18-65]/; // 这样写对么
    reg.test(‘50‘)
    //Uncaught SyntaxError: Invalid regular expression: /[18-65]/: Range out of order in character class
    //聪明的你想可能是8-6这里不对,于是改成[16-85]似乎可以匹配16到85的年龄段的,但实际上发现这也是不靠谱的
    实际上我们匹配这个18-65年龄段的正则我们要拆开来匹配
    我们拆成3部分来匹配 18-19 20-59 60-65
    reg = /(18|19)|([2-5]d)|(6[0-5])/;

保留两位小数

  1. num.tofix(2)此时返回的是一个字符串,此时可以在前面加入 + ,那么会转化为数字
  2. Math.round(num*100)/100,此时也会返回两位小数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读