前端正则练习题

稜镜接口
• 阅读 2473
练习题
1.把get-element-by-id转为驼峰命名
     var str = 'get-element-by-id'
     const reg = /-\w/g
     const newStr = str.replace(reg, word => {
           console.log(word, 'word12')
           return word.substring(1).toUpperCase()
        })
    console.log(newStr, 'newStr')
    // getElementById
2.判断电话号码
     function isPhone(tel) {
        var regx = /^1[34578]\d{9}$/;
        return regx.test(tel);
       }
3.查找重复单词
var str = "Is is the cost of of gasoline going up up";
var patt1 = /\b([a-z]+) \1\b/ig;
document.write(str.match(patt1));

\1 指定第一个子匹配项 back reference 反向参考~~~~
4.abcdebbcde匹配叠词(考察反向引用)
https://www.cnblogs.com/guorange/p/6693168.html
源字符串:abcdebbcde

正则表达式:([ab])1

对于正则表达式“([ab])1”,捕获组中的子表达式“[ab]”虽然可以匹
配“a”或者“b”,但是捕获组一旦匹配成功,反向引用的内容也就确定了。如
果捕获组匹配到“a”,那么反向引用也就只能匹配“a”,同理,如果捕获组匹
配到的是“b”,那么反向引用也就只能匹配“b”。由于后面反向引用“1”的限
制,要求必须是两个相同的字符,在这里也就是“aa”或者“bb”才能匹配成
功。~~~~
5.给定字符串str,检查其是否符合如下格式

XXX-XXX-XXXX 其中X为Number类型

  function matchesPattern(str) {
    
  return /^(\d{3}-){2}\d{4}$/.test(str);
6、JS实现千位分隔符

前端没有后顾,所以只讲解前瞻
首先我们要理解正则的解析顺序 正则解析顺序->从左向右,向右边看就是前瞻

    1. ?= 正向前瞻 例如: /b(?=a)/.test('bab') 看前瞻的部分是否是a   //true
    1. ?! 负向前瞻 /b(?!a)/.test('bb') 看前瞻部分是不是非a //true
     const number = 123456789123
            var regx = /\d{1,3}(?=(\d{3})+$)/g
            // document.write((number + '').replace(regx, '$&,'))
            // $&表示与regx相匹配的字符串123 456 789 最后的123 
            // 没有被匹配上是因为?= 前瞻的时候没有3位数~~~~字
            document.write(
              (number + '').replace(regx, function (world) {
                //这里的world就是上面的$& 即 123 456 789
                return world + ','
              }),
            ) ~~~~
    点赞
    收藏
    评论区
    推荐文章
    blmius blmius
    3年前
    MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
    文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
    Wesley13 Wesley13
    3年前
    MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
    背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
    美凌格栋栋酱 美凌格栋栋酱
    6个月前
    Oracle 分组与拼接字符串同时使用
    SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
    Stella981 Stella981
    3年前
    Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
    Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
    Stella981 Stella981
    3年前
    Linux查看GPU信息和使用情况
    1、Linux查看显卡信息:lspci|grepivga2、使用nvidiaGPU可以:lspci|grepinvidia!(https://oscimg.oschina.net/oscnet/36e7c7382fa9fe49068e7e5f8825bc67a17.png)前边的序号"00:0f.0"是显卡的代
    Wesley13 Wesley13
    3年前
    FLV文件格式
    1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
    Stella981 Stella981
    3年前
    KVM调整cpu和内存
    一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
    Easter79 Easter79
    3年前
    Twitter的分布式自增ID算法snowflake (Java版)
    概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
    Wesley13 Wesley13
    3年前
    mysql设置时区
    mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
    Wesley13 Wesley13
    3年前
    Java日期时间API系列36
      十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
    Python进阶者 Python进阶者
    1年前
    Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这