JavaScript 知识点 --》 正则表达式

JavaScript 字符串

字符串可以是插入到引号中的任何字符。你可以使用单引号或双引号:

var carname = "Volvo XC60";
var carname = 'Volvo XC60';

字符串的索引从 0 开始,这意味着第一个字符索引值为 [0],第二个为 [1],

 

可以使用内置属性 length 来计算字符串的长度:var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

 

使用反斜杠 (\) 来转义 "Vikings" 字符串中的双引号,如下:

"We are the so-called \"Vikings\" from the north."

代码输出
\'单引号
\"双引号
\\反斜杠
\n换行
\r回车
\ttab(制表符)
\b退格符
\f换页符

可以使用 new 关键字将字符串定义为一个对象: var firstName = new String("John")

=== 为绝对相等,即数据类型与值都必须相等

 

属性描述
constructor返回创建字符串属性的函数
length返回字符串的长度
prototype允许您向对象添加属性和方法
方法描述
charAt()返回指定索引位置的字符
charCodeAt()返回指定索引位置字符的 Unicode 值
concat()连接两个或多个字符串,返回连接后的字符串
fromCharCode()将 Unicode 转换为字符串
indexOf()返回字符串中检索指定字符第一次出现的位置
lastIndexOf()返回字符串中检索指定字符最后一次出现的位置
localeCompare()用本地特定的顺序来比较两个字符串
match()找到一个或多个正则表达式的匹配
replace()替换与正则表达式匹配的子串
search()检索与正则表达式相匹配的值
slice()提取字符串的片断,并在新的字符串中返回被提取的部分
split()把字符串分割为子字符串数组
substr()从起始索引号提取字符串中指定数目的字符
substring()提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase()根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase()根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase()把字符串转换为小写
toString()返回字符串对象值
toUpperCase()把字符串转换为大写
trim()移除字符串首尾空白
valueOf()

返回某个字符串对象的原始值

 

 

 

JavaScript 运算符

算数运算符

 

+加法x=y+275实例 »
-减法x=y-235实例 »
*乘法x=y*2105实例 »
/除法x=y/22.55实例 »
%取模(余数)x=y%215实例 »
++自增x=++y66实例 »
x=y++56实例 »
--自减x=--y44实例 »
x=y--54实例 »

 

赋值运算符

给定 x=10 y=5,下面的表格解释了赋值运算符:

运算符例子等同于运算结果在线实例
=x=y x=5实例 »
+=x+=yx=x+yx=15实例 »
-=x-=yx=x-yx=5实例 »
*=x*=yx=x*yx=50实例 »
/=x/=yx=x/yx=2实例 »
%=x%=yx=x%yx=0实例 »

 

+ 运算符用于把文本值或字符串变量加起来(连接起来)。

txt1="What a very ";
txt2="nice day";
txt3=txt1+txt2;

在以上语句执行后,变量 txt3包含的值是:

What a very nice day

 

两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,如下实例:

x=5+5;
y="5"+5;
z="Hello"+5;

x,y, 和 z 输出结果为:

10
55
Hello5

 

比较运算符

!= 不等于x!=8true实例 »
!== 不绝对等于(值和类型有一个不相等,或两个都不相等)x!=="5"true实例 »
x!==5false实例 »

 

逻辑运算符

给定 x=6 以及 y=3,下表解释了逻辑运算符:

运算符描述例子
&&and(x < 10 && y > 1) 为 true
||or(x==5 || y==5) 为 false
!not!(x==y) 为 true

 

条件运算符

语法

variablename=(condition)?value1:value2 

实例

如果变量 age 中的值小于 18,则向变量 voteable 赋值 "年龄太小",否则赋值 "年龄已达到"。

voteable=(age<18)?"年龄太小":"年龄已达到";

 

语句

  • if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
  • if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
  • if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
  • switch 语句 - 使用该语句来选择多个代码块之一来执行

if....else if...else 语句来选择多个代码块之一来执行。

语法

if (condition1)
{
    当条件 1 为 true 时执行的代码
}
else if (condition2)
{
    当条件 2 为 true 时执行的代码
}
else
{
  当条件 1 和 条件 2 都不为 true 时执行的代码
}

 

switch 语句用于基于不同的条件来执行不同的动作。

语法

switch(n)

{

case 1:

执行代码块 1

break;

case 2: 执行代码块 2 break; default: 与 case 1 和 case 2 不同时执行的代码 }

首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

 

使用 default 关键词来规定匹配不存在时做的事情:

var d=new Date().getDay(); switch (d) { case 6:x="今天是星期六"; break; case 0:x="今天是星期日"; break; default: x="期待周末"; } document.getElementById("demo").innerHTML=x;

 

JavaScript for 循环

  • or - 循环代码块一定的次数
  • for/in - 循环遍历对象的属性
  • while - 当指定的条件为 true 时循环指定的代码块
  • do/while - 同样当指定的条件为 true 时循环指定的代码块

for 循环的语法:

for (语句 1; 语句 2; 语句 3)
{
    被执行的代码块
}

for (var i=0; i<5; i++) { x=x + "该数字为 " + i + "<br>"; }

语句 1 中初始化任意(或者多个)值:

for (var i=0,len=cars.length; i<len; i++) { document.write(cars[i] + "<br>"); }

 

JavaScript while 循环

语法

while (条件)
{
    需要执行的代码
}

while (i<5) { x=x + "The number is " + i + "<br>"; i++; }

语法

do
{
    需要执行的代码
}
while (条件);

实例

do { x=x + "The number is " + i + "<br>"; i++; } while (i<5);

 

 

JavaScript Break 和 Continue 语句

break 语句可用于跳出循环。

continue 语句跳出循环后,会继续执行该循环之后的代码(如果有的话):

for (i=0;i<10;i++) { if (i==3) { break; } x=x + "The number is " + i + "<br>"; }

continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。 该例子跳过了值 3:

实例

for (i=0;i<=10;i++) { if (i==3) continue; x=x + "The number is " + i + "<br>"; }

 

break 和 continue 语句仅仅是能够跳出代码块的语句。

continue 语句(带有或不带标签引用)只能用在循环中。

break 语句(不带标签引用),只能用在循环或 switch 中。

 

 

 

JavaScript typeof, null, 和 undefined

你可以使用 typeof 操作符来检测变量的数据类型。

实例

typeof "John"                // 返回 string
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {name:'John', age:34} // 返回 object

 

null是一个只有一个值的特殊类型。表示一个空对象引用。

typeof 一个没有值的变量会返回 undefined

null 和 undefined 的值相等,但类型不等:

typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

 

JavaScript 类型转换

JavaScript 数据类型

在 JavaScript 中有 5 种不同的数据类型:

  • string
  • number
  • boolean
  • object
  • function

3 种对象类型:

  • Object
  • Date
  • Array

2 个不包含任何值的数据类型:

  • null
  • undefined

 

constructor 属性返回所有 JavaScript 变量的构造函数。

可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

全局方法 String() 可以将数字转换为字符串。

实例

String(x)         // 将变量 x 转换为字符串并返回
String(123)       // 将数字 123 转换为字符串并返回
String(100 + 23)  // 将数字表达式转换为字符串并返回

将布尔值转换为字符串

全局方法 String() 可以将布尔值转换为字符串。

String(false)        // 返回 "false"
String(true)         // 返回 "true"

Boolean 方法 toString() 也有相同的效果。

false.toString()     // 返回 "false"
true.toString()      // 返回 "true"

 

Date 方法 章节中,你可以查看更多关于日期转换为字符串的函数:

方法描述
getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。
getFullYear()从 Date 对象以四位数字返回年份。
getHours()返回 Date 对象的小时 (0 ~ 23)。
getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。
getMinutes()返回 Date 对象的分钟 (0 ~ 59)。
getMonth()从 Date 对象返回月份 (0 ~ 11)。
getSeconds()返回 Date 对象的秒数 (0 ~ 59)。
getTime()返回 1970 年 1 月 1 日至今的毫秒数。

 

全局方法 Number() 可以将字符串转换为数字。

Number("3.14")    // 返回 3.14
Number(" ")       // 返回 0
Number("")        // 返回 0
Number("99 88")   // 返回 NaN

一元运算符 +

Operator + 可用于将变量转换为数字:

实例

var y = "5";      // y 是一个字符串
var x = + y;      // x 是一个数字

将布尔值转换为数字

全局方法 Number() 可将布尔值转换为数字。

Number(false)     // 返回 0
Number(true)      // 返回 1

 

原始值转换为数字转换为字符串转换为布尔值实例
false0"false"false尝试一下 »
true1"true"true尝试一下 »
00"0"false尝试一下 »
11"1"true尝试一下 »
"0"0"0"true尝试一下 »
"000"0"000"true尝试一下 »
"1"1"1"true尝试一下 »
NaNNaN"NaN"false尝试一下 »
InfinityInfinity"Infinity"true尝试一下 »
-Infinity-Infinity"-Infinity"true尝试一下 »
""0""false尝试一下 »
"20"20"20"true尝试一下 »
"Runoob"NaN"Runoob"true尝试一下 »
[ ]0""true尝试一下 »
[20]20"20"true尝试一下 »
[10,20]NaN"10,20"true尝试一下 »
["Runoob"]NaN"Runoob"true尝试一下 »
["Runoob","Google"]NaN"Runoob,Google"true尝试一下 »
function(){}NaN"function(){}"true尝试一下 »
{ }NaN"[object Object]"true尝试一下 »
null0"null"false尝试一下 »
undefinedNaN"undefined"false尝试一下 »

 

JavaScript 正则表达式

语法

/正则表达式主体/修饰符(可选)

实例:

var patt = /runoob/i

实例解析:

/runoob/i  是一个正则表达式。

runoob  是一个正则表达式主体 (用于检索)。

search() 方法使用正则表达式

实例

使用正则表达式搜索 "Runoob" 字符串,且不区分大小写:

var str = "Visit Runoob!"; var n = str.search(/Runoob/i);

replace() 方法使用正则表达式

实例

使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :

var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob");

结果输出为:

Visit Runoob!

修饰符描述
i执行对大小写不敏感的匹配。
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m执行多行匹配。
\d查找数字。
\s查找空白字符。
\b匹配单词边界。
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

 

量词描述
n+匹配任何包含至少一个 n 的字符串。
n*匹配任何包含零个或多个 n 的字符串。
n?匹配任何包含零个或一个 n 的字符串。

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var patt = /e/;
patt.test("The best things in life are free!");

字符串中含有 "e",所以该实例输出为:

true

exec() 方法用于检索字符串中的正则表达式的匹配。

/e/.exec("The best things in life are free!");

字符串中含有 "e",所以该实例输出为:

e

 

 

 

 

 

 

 

 

 

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值