靡语IT:常用系统方法和正则

课程前导:

系统方法:js已经编辑好的功能,可以直接使用

正则:一种检查数据的规则

常见的系统方法:

1.字符串(String)对象

String对象用于处理已有的字符块

浅谈对象概念

字符和字符块的解释

  • 字符串是非常重要的数据类型,除了基本字符串外,Javascript 还提供了字符串的引用类型--字符串対象。

  • 字符串对象提供了字符串检索、替换、连接等方法.

  • 可以通过new 关键字创建字符串对象

    var str=new String ()

  • length 属性返回字符串的长度(字符数)。

    一个字符串用于存储一系列字符就像”John Doe

    一个字符串可以使用单引号或双引号:

  • 使用位置(索引)可以访问字符串中的任何字符

  • 字符串的索引从零开始,所以字符串第一字符为[0],第二个字符[1],等等。

    在字符串中使用引号

    方式一:在单引号中使用双引号,在双引号使用单引号

  • 注意:交叉使用

    方式二:使用转义字符(\)

    2.字符串长度(length)

    字符串(String)使用长度属性length来计算字符串的长度

    属性:对象的组成

  • Javascript获取字符串的长度:通过字符串变量名.length可以获取到变量中string (字符串)值得长度

3.在字符串中查找字符

字符串中使用indexOf()来定位字符串中某一个指定字符首次出现的位置

注意:

  • indexOf--O大写

  • 如果没有匹配内容,返回-1

4.内容匹配

match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符

5.替换内容

replace()方法在字符串中用某些字符替换另一些字符

6.字符串大小写转换

字符串大小写转换使用的函数 toUpperCase() / toLowerCase()

7.字符串和数字的转换

toString () 返回字符串。可以将数值转换成字符串。

如果需要获取数值的二进制、八进制、十六进制的字符串表示,则可以给

toString ()传递一个表示进制的的整数

parseInt()函数可以将字符串转换成整数

parseFloat()函数可以将字符串转换浮点数

Number ()函数可以将任意类型的值转换数值。

8. 字符串转为数组

字符串使用 string>split()函数转为数组:

9. 特殊字符

Javascript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊 符号。

查看如下 JavaScript 代码:

解决以上的问题可以使用反斜线来转义引号:

10. 字符串属性和方法

img

charAt()
返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的
Unicode 编码。
concat() 连接字符串。
slice(n,m) 提取字符串 n 到m 之间的片断(不包括m 位置的字符串),并在新的字符串中返 回被提取的部分。
substring () 提取字符串中两个指定的索引号之间 的字符。大多数情况和上一个作用相 同,当参数为负值时会有不同,但这种 情况较少用,不做讨论,有兴趣的话自 己测试或查下资料
substr (n,m) 从起始索引号提取字符串中指定数目 的字符。
split() 把字符串分割为字符串数组。
indexOf() 检索字符串,返回某个指定的字符串值 在字符串中首次出现的位置。注意,如 果查找不到会返回-1
lastIndexOf() 从后向前搜索字符串。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
match() 找到一个或多个正则表达式的匹配。 (正则表达式后续课程会讲) 该方法 会返回一个数组,数组中包含了所有符 合条件的文本。
replace() 替换与正则表达式匹配的子串,并返回 替换后的字符串,注意原字符串不会改 变
search() 检索与正则表达式相匹配的值。查找与 参数模式相匹配的文本,并返回该文本 的位置 。若无则返回 null(indexOf() 会返回-1).与 indexOf()相似。
split() 把字符串分割为字符串数组。

需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定 义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返 回的是全新的字符串,而不是修改原始字符串。

二、 Math(算数)对象

1. Math(算数)对象

Math(算数)对象的作用是:执行常见的算数任务。

Math 对象用于执行数学任务。

Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math()。

2. 语法

注意: Math 对象无需在使用这个对象之前对它进行定义。

提示: Math 对象不能使用 new 关键字创建对象实例。直接用 “对象名.成员 ” 的格式来访问其属性或者方法。

3.Math 对象属性

属性 描述
E 返回算术常量 e,即自然对数的底数 (约等于 2.718)。
LN2 返回 2 的自然对数(约等于 0.693)。
LN10 返回 10 的自然对数(约等于 2.302)。
LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)。
LOG10E 返回以 10 为底的 e 的对数(约等于 0.434)。
PI 返回圆周率(约等于 3.14159)。
SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。
SQRT2 返回 2 的平方根(约等于 1.414)。

4.Math 对象方法

方法 描述
abs(x) 返回 x 的绝对值。
acos(x) 返回 x 的反余弦值。
asin (x) 返回 x 的反正弦值。
atan (x) 以介于 -PI/2 与 PI/2 弧度之间的数 值来返回 x 的反正切值。
atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x) 对数进行上舍入。
cos(x) 返回数的余弦。
exp (x) 返回 Ex 的指数。
floor (x) 对 x 进行下舍入。
log (x) 返回数的自然对数(底为 e)。
max(x,y,z,...,n) 返回 x,y,z,...,n 中的最高值。
min (x,y,z,...,n) 返回 x,y,z,...,n 中的最低值。
pow(x,y) 返回 x 的 y 次幂。
random() 返回 0 ~ 1 之间的随机数。注意不包 括 0 和 1
round(x) 把数四舍五入为最接近的整数。
sin (x) 返回数的正弦。
sqrt(x) 返回数的平方根。
tan (x) 返回角的正切。

5. Math 对象

Math(算数)对象的作用是:执行普通的算数任务。

Math 对象提供多种算数值类型和函数。无需在使用这个对象之前对它进行定义。

使用 Math 的属性/方法的语法:

注意: Math 对象无需在使用这个对象之前对它进行定义。

提示:Math 对象不能使用 new 关键字创建对象实例。直接用 “对象名.成员 ” 的格式来访问其属性或者方法。

6. 算数值

JavaScript 提供 8 种可被 Math 对象访问的算数值:

你可以参考如下 Javascript 常量使用方法:

7. 算数方法

除了可被 Math 对象访问的算数值以外,还有几个函数(方法)可以使用。

下面的例子使用了 Math 对象的 round 方法对一个数进行四舍五入。

上面的代码输出为:5

下面的例子使用了 Math 对象的 random() 方法来返回一个介于 0 和 1 之间 的随机数:

上面的代码输出为:0.6581708136621066

下面的例子使用了 Math 对象的 floor () 方法和 random() 来返回一个介于 0 和 11 之间的随机数:

上面的代码输出为:8

三、 Date(日期)对象

1.Date(日期) 对象

日期对象用于处理日期和时间。

2. 创建日期

Date 对象用于处理日期和时间。

可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:

有四种方式初始化日期:

注意: 方括号内的参数是可选的。

参数描述

1.No Argument: 不带参数,Date() 构造函数创建一个日期对象,设置为当前

日期和时间。

2.milliseconds: 当传递一个数字作为参数,它作为表示日期中毫秒的内部数 字,作为 getTime() 方法的返回值中的毫秒。例如,通过传递参数 5000 创建 一个日期对象,代表 1/1/1970 午夜过去 5 秒钟。

3.datestring: 当传递一个字符串作为参数,它必须是一个日期形式的字符串, 即可以被 Date.parse() 方法接收的格式。

4.agrument: 对于上面给出的最后一种形式的构造函数,下面是每个参数的描述:

  1. year: 整数,表示年。为了兼容性(为了避免 Y2K 问题),应该完整地指定年;使用 1998 而不是 98。

  2. month:整数,表示月。从 0(表示一月)开始到 11(表示十二月)。

  3. date: 整数,表示一个月的某一天。

  4. hour: 整数,表示一天的某一个小时(24 小时制)。

  5. minute: 整数,表示时间计数的分钟片段。

  6. second: 整数,表示时间计数的秒片段。

  7. milliseconds: 整数,表示时间计数的毫秒片段。

从 1970 年 1 月 1 日通用一天计算为 86,400,000 毫秒

实例化一个日期的一些例子

3.Date 属性

下边列出了日期的各个属性及对应的属性描述。

属性 描述
constructor 返回对创建该对象的函数的引用
prototype 允许向对象添加属性和方法

4.Date 方法

下边列出了日期的一系列方法及对应的描述。 (重点掌握蓝色字体的内容,其他 了解即可)

设置日期方法 描述
Date() 返回当日的日期和时间
getDate() 根据本地时从 Date 对象返回一个月中 的某一天(1 ~ 31)
getDay () 根据本地时从 Date 对象返回一周中的 某一天(1 ~ 6)
getFullYear () 根据本地时从 Date 对象以四位数字 返回年份
getHours() 根据本地时返回 Date 对象的小时 (0 ~ 23)
getMilliseconds() 根据本地时返回 Date 对象的毫秒(0 ~
999)
getMinutes() 根据本地时返回 Date 对象的分钟 (0 ~ 59)
getMonth() 根据本地时从 Date 对象返回月份(1 ~ 11)
getSeconds() 根据本地时返回 Date 对象的秒数 (0 ~ 59)
getTime() 根据本地时返回 1970 年 1 月 1 日 至今的毫秒数
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差
getUTCDate() 根据世界时从 Date 对象返回月中的 一天 (1 ~ 31)
getUTCDay () 根据世界时从 Date 对象返回周中的 一天 (0 ~ 6)
getUTCFullYear () 根据世界时从 Date 对象返回四位数 的年份
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)
getYear () 弃用,返回在指定的日期根据当地时 间。使用 getFullYear ()代替。
setDate() 根据本地时设置 Date 对象中月的某 一天 (1 ~ 31)
setFullYear () 根据本地时设置 Date 对象中的年份 (四位数字)
setHours() 根据本地时设置 Date 对象中的小时 (0 ~ 23)
setMilliseconds() 根据本地时设置 Date 对象中的毫秒 (0 ~ 999)
setMinutes() 根据本地时设置 Date 对象中的分钟 (0 ~ 59)
setMonth() 根据本地时设置 Date 对象中月份 (0 ~ 11)
setSeconds() 根据本地时设置 Date 对象中的秒钟 (0 ~ 59)
setTime() 根据本地时以毫秒设置 Date 对象
setUTCDate() 根据世界时设置 Date 对象中月份的 一天 (1 ~ 31)
setUTCFullYear () 根据世界时设置 Date 对象中的年份 (四位数字)
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)
setYear () 弃用,设置为指定的日期根据当地时 间。使用 setFullYear () 代替。
toDateString () 把 Date 对象的日期部分转换为字符 串
toGMTString () 弃用,将日期转换为一个字符串,使用 互联网格林尼治时间约定 。 使用 toUTCString () 代替。
toLocalDateString () 根据本地时间格式,把 Date 对象的日 期部分转换为字符串
toLocalFormat() 将日期转换为一个字符串,使用格式化 字符串。
toLocalString () 根据本地时间格式,把 Date 对象转换 为字符串
toLocalTimeString () 根据本地时间格式,把 Date 对象的时 间部分转换为字符串
toSource() 返回一个字符串代表一个等价的日期 对象的源码,您可以使用这个值来创建 一个新的对象
toString () 把 Date 对象转换为字符串
toTimeString () 把 Date 对象的时间部分转换为字符 串
toUCTString () 根据世界时,把 Date 对象转换为字符 串
valueOf() 返回 Date 对象的原始值

通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。

在下面的例子中,我们为日期对象设置了一个特定的日期 (2010 年 1 月 14 日):

在下面的例子中,我们将日期对象设置为 5 天后的日期:

注意: 如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。

5.Date 静态方法

方法 描述
Date.parse() 返回 1970 年 1 月 1 日午夜到指定 日期(字符串)的毫秒数
Date.UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数

6. 两个日期比较

日期对象也可用于比较两个日期。

下面的代码将当前日期与 2100 年 1 月 14 日做了比较:

四、 正则表达式

1. 正则表达式

正则表达式是一个对象,这个对象描述一种字符模式。

JavaScript RegExp 类代表正则表达式,字符串和 RegExp 都定义了方法,在方 法中使用正则表达式来执行文本中强大的模式匹配和搜索替换功能。正则表达式 简洁且功能强大,通常用来匹配字符串,比如在表单验证中检验用户输入是否合 法。它并不仅仅在 JavaScript 中可以使用,众多的高级编程语言都支持正则表 达式。

2. 语法

正则表达式可以被 RegExp () 构造函数定义,如下所示:

参数描述:

pattern:是一个字符串,指定了正则表达式的模式或其他正则表达式。

attributes:是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定 全局匹配、区分大小写的匹配和多行匹配

3. 方括号

方括号 ([]) 用于正则表达式的上下文中时有特殊意义,用来查找一系列字符

表达 描述
[...] 查找方括号之间的任何字符
[^...] 查找任何不在方括号之间的字符
[0-9] 查找任何从 0 至 9 的数字
[a-z] 查找任何小写 a 到小写 z 的字符
[A-Z] 查找任何大写 A 到大写 Z 的字符
[a-Z] 查找任何小写 a 到大写 Z 的字符

上面所示的范围为一般情况;还可以使用范围 (0-3) 匹配任何从 0 到 3 的十 进制数字,或范围 (b-v) 来匹配任何从小写 b 到小写 v 的字符

4. 量词

方括号括起来的字符序列或单个字符出现的频率或位置可以用一个特殊的符号 来表示。每个特殊字符都有一个特定的含义。+、*、? 和 $ 符号都遵循一个字 符序列模式。

表达 描述
p+ 匹配任何包含至少一个 p 的字符串
p* 匹配任何包含零个或多个 p 的字符串
p? 匹配任何包含零个或一个 p 的字符串
p {N} 匹配包含 N 个 p 的序列字符串
p {2,3} 匹配包含 2 或 3 个 p 的序列的字符 串
p {2,} 匹配包含至少 2 个 p 的序列的字符 串
p$ 匹配任何结尾为 p 的字符串
^p 匹配任何开头为 p 的字符串

5. 例子

表达 描述
[^a-zA-Z] 匹配任何不包含从 a 到 z 和从 A 到 Z 中任何字符的字符串
p.p 匹配任何以一个 p 开始、其次是任意 字符、紧随其后的是另一个 p 的字符 串
^. {2}$ 匹配任何包含两个字符的字符串
(.*) 匹配任何封闭在  和  内的字 符串
p (hp)* 匹配任何包含一个 p、紧随其后的零个 或多个 hp 序列的字符串

6. 原义字符

字符 描述
Alphanumeric 它自己
\0 查找 NUL 字符(\u0000)
\t 查找制表符(\u0009)
\n 查找换行符(\u000A)
\v 查找垂直制表符(\u000B)
\f 查找换页符(\u000C)
\r 查找回车符(\u000D)
\xnn 指定的以十六进制数 nn 表示的拉丁 字符;例如 \x0A 和 \n 表示的一样
\uxxxx 查 找 以 十 六 进 制 数 xxxx 规 定 的 Unicode 字符,例如 \u0009 和 \t 表 示的一样
\cX 控制字符 ^X;例如 \cJ 相当于换行符 \n

7. 元字符

元字符:在一个字母字符之前加上一个反斜杠,使这个组合具有特殊的含义。

例如,您可以使用 '\d' 元字符搜索大量资金数额:/([\d]+)000/,这里 \d 将 寻找任何数值字符的字符串。

下面是元字符的列表,使用 PERL 风格的正则表达式表达。

字符 描述
. 单个字符
\s 空白字符(空格、制表符、换行符)
\S 非空白字符
\d 数字字符(0-9)
\D 非数字字符
\w 单词字符(a-z,A-Z,0-9,_)
\W 非单词字符
[\b] 一个文字退格(特殊情况)
[aeiou] 匹配一个在给定集合内的字符
[^aeiou] 匹配一个不在给定集合内的字符
[foo|bar |baz] 匹配任何指定的备选方案

8. 修饰

几个可用的 regexp 修饰符,它能使你的工作更容易,比如大小写敏感、搜索多 个行等。

字符 描述
i 执行对大小写不敏感的匹配
m 执行多行匹配
g 执行全局匹配(查找所有匹配而非在找 到第一个匹配后停止)

9.RegExp 属性

这是 RegExp 的各个属性及对应的属性描述的列表。

属性 描述 语法
constructor 指定创建一个 对象原型的函 数
global RegExp 对象是 否具有标志 g RegExpObject.global如果 g 标志被设置,则该属性为 true,否则 为 false。
ignoreCase RegExp 对象是 否具有标志 i RegExpObject.ignoreCase如果设置了 "i" 标志,则返回 true,否则返 回 false。
lastIndex 一个整数,标示 开始下一次匹 配的字符位置 RegExpObject.lastIndex该属性存放一个整数,它声明的是上一次匹配 文本之后的第一个字符的位置。多用于在一个 字符串中进行多次匹配 上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以 lastIndex 属性所指的位置作为下次检索的起始点。这 样,就可以通过反复调用这两个方法来遍历一 个字符串中的所有匹配文本。 不具有标志 g 和不表示全局模式的 RegExp 对象不能使用 lastIndex 属性。
multiline RegExp 对象是 否具有标志 m RegExpObject.multiline如果 m 标志被设置,则该属性为 true,否则 为 false。
source 正则表达式的 源文本 RegExpObject.sourcesource 属性用于返回模式匹配所用的文本。 该文本不包括正则表达式直接量使用的定界 符,也不包括标志 g、i、m。

10. RegExp 方法

这是 RegExp 的各个方法及对应的属性描述的列表。

方法 描述 语法
exec() 检索字符串中 指定的值。返回 找到的值,并确 定其位置 如果 exec 方法没有找到匹配,将返回 null。如 果找到匹配项,则 exec 方法返回一个数组 数组元素 0 包含了完整的匹配项,而元素 1 到 n 包含的是匹配项中出现的任意一个子匹配项。
除了数组元素和 length 属性之外,exec() 方法 还返回两个属性。index 属性声明的是匹配文本 的第一个字符的位置。input 属性则存放的是被 检索的字符串 string。在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。 当 RegExpObject 是一个全局正则表达式时, exec() 会在 RegExpObject 的 lastIndex 属性 指 定 的 字 符 处 开 始 检 索 字 符 串 string 。 当 exec() 找到了与表达式相匹配的文本时,在匹配 后,它将把 RegExpObject 的 lastIndex 属性设 置为匹配文本的最后一个字符的下一个位置。
test() 检索字符串中 指定的值。返回 ture 或 false RegExpObject.test(string)如果字符串 string 中含有与 RegExpObject 匹 配的文本,则返回 true,否则返回 false
toSource 返回一个对象 字面值代表指 定的对象 ;您可 以使用这个值 来创建一个新 的对象。
toString () 返回一个代表 指定对象的字 符串。
compile 编译正则表达 式 compile 方法将正则表达式转换为内部的格式, 从而执行得更快。例如,这允许在循环中更有效 地使用正则表达式。当重复使用相同的表达式时, 编译过的正则表达式使执行加速。

练习 1-字符串查找

a) 返回某个位置的字符,即字符在字符串中的下标,第一个字符的下标是 0,如 果下标超出了字符串长度,该方法将返回一个空字符串

返回‘www.51zxw.net ’该字符串 0,4,10,13 位上得字符

b) 返回某个指定的字符串值在字符串中首次出现的位置,对大小写敏感,如果 要检索的字符串值没有出现,则该方法返回 -1

c)返回‘www.51zxw.net ’上 ‘w ’‘. ’‘w.51 ’‘W ’‘a ’的索引

练习 2-字符串替换

a) 将某些字符串替换成指定字符串

语法:replace("要替换的字符","用什么字符替换");

www.51zxw.net ’‘ www.51zxw.net www.51zxw.net

分别给这两个字符串上面的 www 替换成 aaa

分别给这两个字符串上面的 www 替换成 aaa(全局匹配)

分别给这两个字符串上面的 www 替换成 aaa(忽略大小写)

分别给这两个字符串上面的 www 替换成 aaa(全局匹配,忽略大小写)

练习 3-给定范围随机整数

a) 获取 2,3,4,5 随机数

b) 获取给定范围的随机整数(包含最小数和最大数)

获取最小是 5,最大是 50,包含 5 和 50 的随机整数

公式: Math.floor (Math.random()*(最大数-最小数+1)+最小数);

练习 4-字符串大小写转换

a) 将"www.51zxw.net"转换成大写

b) 将"WWW.51ZXW.NET"转换成小写

c) 将"xiaoming"首字母转换成大写

练习 5-获取完整日期和时间

a) 获取完整的年月日

b) 获取完整的时分秒

c) 获取完整的年月日时分秒

练习 6-截取指定下标字符

"www.51zxw.net"

a) 截取从下标为 4 的位置到结尾

b) 截取从下标为 4 的位置到下标为 8 的字符串

c) 截取从下标为-4 的位置到下标为-2 的字符串

练习 7-截取指定个数的字符

a) 截取从下标为 4 的位置到结尾

b) 截取从下标为 4 的位置开始的 8 个字符

c) 截取从下标为-2 的位置开始的 5 个字符

练习 8-字符串分割

"中文名:我和我的祖国||出品时间:2019 年||片长:158 分钟||主演:黄渤,张译, 吴京,杜江"

a) 将上面的字符串根据||进行分割

练习 9-字符串当初数组使用

"xiaoming"

a)把字符串首字母转成大写

练习 10-表单验证

a) 使用正则表达式满足表单里面的要求

相关推荐

  1. IT:Bootstrap 简介

    2024-02-23 14:14:01       31 阅读
  2. js表达式详解与代码讲解

    2024-02-23 14:14:01       38 阅读
  3. Python 表达式 re.match() re.search() 方法

    2024-02-23 14:14:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 14:14:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 14:14:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 14:14:01       87 阅读
  4. Python语言-面向对象

    2024-02-23 14:14:01       96 阅读

热门阅读

  1. Sora技术——AI的热辣滚烫

    2024-02-23 14:14:01       55 阅读
  2. Python | List Comprehension |列表推导式

    2024-02-23 14:14:01       57 阅读
  3. k8s之nodelocaldns与CoreDNS组件

    2024-02-23 14:14:01       54 阅读
  4. spring mvc 执行流程

    2024-02-23 14:14:01       45 阅读
  5. 使用openssl,在windows sever上创建ca,以及签发证书

    2024-02-23 14:14:01       50 阅读
  6. 【DOCKER】随手记

    2024-02-23 14:14:01       50 阅读