Web前端复习——JS(正则表达式+内置对象)

2023-11-17

正则表达式:专门规定字符中字符*格式规则*的表达式


何时使用:只要定义字符串格式规则,都用正则表达式


最简单正则:一个关键词的原文,就是最简单的正则


1、备选字符集:规定某*一位*字符可选的备选文字列表
语法:[备选字符列表]
强调:(1)无论备选字符集中由有多少字符,都必须且只能选一个,
              (2)一个[]只代表一位字符
  排除字符:^
[^47]——表示除了4、7以外的所有字符都行


2、-:如果备选字符连续,可用“-”表示“到”
[A-Za-z] [0-9]



3、预定义字符集:专门表示常用的连续字符集
\d ==> [0-9] ——1位数字
\w ==> [a-zA-Z_]——1位字母或"_"下划线
\s ==> [空字符]——代表一位空字符:空格、Tab符
除此之外,还有\D \W \S——表示除了\d \w \s的字符都行(用得少)


4、量词:规定一个字符集出现的次数(2种)
(1)明确数量的量词(3种)
{min,max}:最少min位,最多max位
{min,}:至少min位
{n}:必须n位

案例——身份证号:至少15位数字        \d{15}
                  2位数字             \d{2}
         最后一位数字或X x   [0-9xX]
表示方法——\d{15}(\d{2}[0-9xX])?

(2)不明确数量的量词(3种)
? ==> {0,1}:可有可无,最多一次(“?”默认只修饰前边的字符)
* ==> {0,}:可有可无,多了数量不限
+ ==> {1,}:至少一次,多了数量不限


案例——手机号:+86可有可无,最多1次 (\+86)?(加“\”表示转义)
      " "空格可有可无,多了数量不限    \s*(“\s”表示一个空格)
1 1
从3,4,5,7,8选一位             [34578]
最多必须是9位数字               \d{9}


表示方法——(\+86)?\s*1[34578]\d{9}

注意:"|"表示左右的“或”,可以不只是1或0两个选择


5、RegExp对象
封装了正则表达式,提供了利用正则表达式执行验证和查找的API
何时使用?
只要利用正则表达式执行验证和查找功能时
创建:2种
(1)var reg=/正则表达式/ig
     何时使用:正则表达式在运行时不会改变
(2)var reg=new RegExp("正则表达式","ig")
     何时使用:在运行时正则表达式
             var str1="\d{6}";
    var str2="\d{15}(\d\d[0-9xX])?"
    var reg=new RegExp(str2,"")


如何使用:2种操作
(1)格式验证——var bool=reg.test();
验证:要求从头到尾必须完整匹配
问题:test方法默认只要部分匹配即可
解决:都要在正则表达式前加^,后边加$结束
^表示开头位置,$表示结尾位置
^/$联用表示从头到尾必须完整匹配

二、内置对象:5种

(1)String中的正则API

a、替换:str.replace(reg,"替换值")

固定套路:利用replace格式化数据

“替换值”中,也可使用$n和RegExp.$n用法完全相同

b、切割:var arr=str.split(str)



(2)Math:专门执行数学计算的对象

封装了数学计算中常用的常量

a、取整(3种)

上取整、        下取整、        四舍五入取整

Math.ceil(n)    Math.floor(n)   Math.round(n)

   "天花板"       "地板"

round VS toFixed

a1.toFixed——Number对象     按任意小数位    字符串

a2.round——Math对象       只能取整        整数

var n=23.456;
n.toFixed(0);   //23
n.toFixed(2);   //23.46

b、乘方/开平方

乘方:Math.pow(n,m):计算n的m次方

开平方:Math.sqrt(n):计算n的平方根


c、获取最大值/最小值

Math.max(a,b,c)

Math.min(a,b,c)

固定套路:变相实现了获取数组中的最大值

Math.max.apply(Math,arr)——>Math.max(arr[0],...)


d、随机数:Math.random();  0<=n<1

任意min到max之间取一个随机整数

     60   100

随机取整数:parseInt(Math.random()*(max-min+1)+min)

除了用parseInt()方法,还可以使用floor()



(3)Date:封装了一个时间点,提供了对时间和日期的操作API

Date中封装了从1970-01-01 00:00:00 至今的ms数


创建Date对象:4种

a、var now=new Date();   //创建一个新日期对象同时,获得当前时间ms数

获得当前时间

b、var time=new Date("xxxx/xx/xx [xx:xx:xx]");

c、var time=new Date(年,月-1,日[,时,分,秒]);

date.getTime():获得日期对象中的毫秒数


Date API:

(1)每个分量都有一对get/set方法

getDay()获得日期,没有setDay()

(2)命名:年月日星期,不加s

   时分秒毫秒,加s

(3)返回值:月中的日取值范围从1开始到31结束

其余的都是从0开始到减1结束

星期:日 一 二 .... 六

       0  1  2 ....  6

月份:1月 2月 3月 .... 12月

       0   1   2        11

日期:1日 2日 3日 .... 31日

       1   2   3        31

Date计算——2种

a.两日期对象可直接详见,结果毫秒差

b.对任意分量做加减:先get出来,计算,再set回去

直接修改原日期对象

date.setXXX(date.getXXX()+-n)


(4)Array对象

(5)Event对象



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web前端复习——JS(正则表达式+内置对象) 的相关文章

随机推荐

  • 校验码在线计算工具

    符合在合种场景下开发使用 LRC校验码在线计算器 ME2在线工具
  • NE555 + CD4017流水灯

    NE555 CD4017流水灯 1 完成此物只需要清楚2个点 1 NE555充当信号发生器 产生方波 信号即电信号 有高低电平之分 所谓方波就是在一个周期内 保持前a时间高电平 持续1 a时间内的低电平 0
  • js中如何实现字符串去重?

    聚沙成塔 每天进步一点点 专栏简介 使用 Set 数据结构 使用循环遍历 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅 这个专栏是为那些对Web
  • 一个页面好几个地方调用ajax,如何使用一个jquery ajax调用来更新页面上的多个区域?...

    我目前正在使用jQuery Ajax和PHP实现购物车 并且大部分工作正在进行 然而 我目前卡在如何更新购物车页面内容时 我更新购物车 因为此刻我返回的HTML更新侧栏中的购物车区域 工作正常 如何使用一个jquery ajax调用来更新页
  • 头条号个人中心登录_手把手教你如何在头条号中绑定百家号?

    现在的自媒体平台很多 很多人做自媒体时注册了多个平台 一般都是将自己制作的内容发到不同平台 由于每个平台都要审核发布内容是否符合平台规定 如果发现网上有相同内容被认为是抄袭可能审核不通过 因此 帐号之间关联在一起 平台就知道是这内容是同一作
  • 一种基于Redisson实现简单的分布式定时任务执行方案

    一般在springcloud下单机执行定时任务的代码 EnableScheduling public class TestTask Scheduled cron 0 public void test System out println s
  • SSM项目遇到的问题(5)

    SSM项目中前端传递的方式为post且格式为Json 遇到的问题 问题解决 遇到的问题 简单介绍一下 遇到的问题 前端传送的数据为Json格式 方法为post 也就是这样子的 但是在后端获取到的数据 死活都为null 不管接受的参数 是这样
  • 解决Error:Flash Download failed -“Cortex-M3”问题

    自己用的ST link下载程序 按照网友配置ST Link在keil5上的应用 结果就是这样的 首先我用的STM32F103ZET6建的工程 想把程序下载到STM32F103C8T6上 我看到其他博友说的问题有如下 1 在KEIL5上配置错
  • python爬虫学习笔记3

    1 selenium 1 什么是selenium 1 Selenium是一个用于Web应用程序测试的工具 2 Selenium测试直接运行在浏览器中 就像真正的用户在操作一样 3 支持通过各种driver FirfoxDriver Iter
  • tolua框架整理

    文 知乎 罗培羽 第一篇 代码热更新 这些日子在找Unity3D的现成框架 希望能给后续项目开发带来便利 找着找着 便关注到了LuaFramework 这是一套基于tolua的框架 可以实现热更新 然而相关的资料太少 磕磕碰碰的尝试之后 便
  • 计算方法实验(四):牛顿迭代法

    Newton迭代法数学原理 求非线性方程 f x 0 f x 0 f x 0的根
  • JavaAwtSwing FlowLayout可以居左居中居右

    new FlowLayout FlowLayout LEFT new FlowLayout FlowLayout CENTER new FlowLayout FlowLayout RIGHT package flowlayout impor
  • 使用osmdroid6.0.2加载谷歌、高德、天地图等瓦片地图

    研究了一星期多的Osmdroid6 0 2 深感这个开源的android地图包强大 因为使用其他瓦片涉及知识产权 请大家谨慎使用 本文只做研究测试 新建GoogleTileSource类继承org osmdroid tileprovider
  • 网页常用小技巧

    网页常用小技巧1 nc ntextmenu window event returnValue false 将彻底屏蔽鼠标右键 table border border td no td table 可用于Table 2 取消选取 防止复制 3
  • 几个Python配置工具简介:setuptools、pip、virtualenv

    http www yeolar com note 2012 08 18 setuptools pip virtualenv 本篇快速总结几个Python的常见配置工具 包括setuptools pip virtualenv setuptoo
  • Log4j additivity属性简介说明

    转自 Log4j additivity属性简介说明 下文笔者将讲述Log4j中的additivity属性的相关简介说明 如下所示 Log4j中additivity属性的功能说明 Log4j中additivity的值为 true或false
  • css能做到文本超出第二行显示省略号

    ellipsis width 100px overflow hidden 必须结合的属性 当内容溢出元素框时发生的事情 text overflow ellipsis 可以用来多行文本的情况下 用省略号 隐藏超出范围的文本 display w
  • 基于SpringBoot实现MySQL与Redis的数据一致性

    问题场景 在并发场景下 MySQL和Redis之间的数据不一致性可能成为一个突出问题 这种不一致性可能由网络延迟 并发写入冲突以及异常情况处理等因素引起 导致MySQL和Redis中的数据在某些时间点不同步或出现不一致的情况 数据一致性问题
  • 二分查找(Binary Search)是一种常用的查找算法,它通过将已排序的数组分成两半,然后确定待查找元素在哪一半中,从而缩小查找范围

    二分查找 Binary Search 是一种常用的查找算法 它通过将已排序的数组分成两半 然后确定待查找元素在哪一半中 从而缩小查找范围 这篇文章将介绍如何使用Java实现二分查找算法 首先 我们需要了解二分查找的基本原理 二分查找的前提是
  • Web前端复习——JS(正则表达式+内置对象)

    正则表达式 专门规定字符中字符 格式规则 的表达式 何时使用 只要定义字符串格式规则 都用正则表达式 最简单正则 一个关键词的原文 就是最简单的正则 1 备选字符集 规定某 一位 字符可选的备选文字列表 语法 备选字符列表 强调 1 无论备