String对象、Date对象和正则表达式

本文详细介绍了JavaScript中字符串的创建、属性和方法,包括不可变性、连接、截取、查找与替换等操作。同时,讲解了Date对象的设置、获取、转换方法,以及正则表达式的创建与使用。通过实例演示了各种方法的用法,帮助读者深入理解JavaScript中的字符串处理和日期处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String对象

重点:JavaScript的字符串是不可变的,String类定义的方法都不能改变字符串的内容。它返回的是全新的字符串,而不是修改原始字符串。所以String的操作非常耗性能。

一、创建字符串

1.使用new关键字创建字符串对象

//创建字符串对象
var str = new String();  //空字符串
var str = new String(任何值);

⒉使用字面量方式创建字符串对象

var str = "";	//空字符串
var str = 'Hello JavaScript';

二、String对象的属性和方法

属性:对象的静态特征的描述;变量存储,使用方法:对象.属性名
方法:对象的动态行为;函数,使用方法:对象.方法();

属性:

length

方法:

提取字符串字符

charAt(下标);	//返回指定位置的字符

例:
var str = "hello world";
str.charAt(6);
结果:w

字符串的连接

concat();	//字符串的连接方法
语法:字符串对象.concat(字符串1,字符串2,...,字符串n);

例:
var str = "饿了";
var str2 = "那吃呀";
str.concat(str2);	//结果为:"饿了那吃呀"
str.concat(str2,"吃啥呀","想吃啥就吃啥");		//结果为: "饿了那吃呀吃啥呀想吃啥就吃啥"       

提取部分字符串

slice();	//截取字符串
语法:字符串对象.slice(start,end);

注:
	1、start从0开始数,end从1开始数
	2、只有一个参数时,表示从开始位置到最后
	3、取值可以为负数,为负数时代表字符串倒着数
	4、end小于start时,不会报错,但是截取结果为空字符串

例:
var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

结果:Banana
substring();
语法:字符串对象.substring(start,end);

注:用法与 slice() 方法相同,但是参数不能为负数。
substr();	//截取字符串
语法:字符串对象.substr(start,length);

注:
1、start参数可以为负,为负数时代表字符串倒着数
2、length规定被提取部分的长度

例:
var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

结果:Banana

查找字符串中的字符串

* indexOf();	//返回字符串中指定文本首次出现的位置的下标
语法:字符串对象.indexOf(查找字符,开始位置);

注:
1、开始位置:表示指定从字符串的哪个下标开始查找
2、返回-1表示没有找对应的字符,否则返回对应位置的下标。(es6中,数组也有这个方法)

例:
var str = "Hello JavaScript";
var pos = str.indexOf("Java");

结果:6

查找匹配字符串

match();	//返回匹配的字符串(返回的是一个数组)
语法:字符串对象.match(字符串|正则表达式);

例:
box.match("l");
box.match(/l/g);

替换字符串内容

* replace();	//替换字符串
语法:字符串对象.replace(被替换的字符,替换的字符);

注:
1replace()方法不会改变调用它的字符串。它返回的是新字符串。
2、默认地, replace() 只替换首个匹配
3、默认地, replace() 严格区分大小写

例:
var str = "hello world";
str.replace("l", "i");	//只会替换一个
str.replace(/l/g , "i");	//使用正则表达式,替换所有的l

检索字符串中的字符串

search();	//检索字符串中的字符串
语法:字符串对象.search(regexp);

作用:用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
返回值:字符串对象中第一个与regexp相匹配的子串的起始位置。
注:如果没有找到任何匹配的子串,则返回-1。

例:
var box = 'Mr Jacky is a cat';
document.write(box.search("acky"));	//返回:4

其他

* split();	//把字符串转换为数组
语法: 字符串对象.split(分隔符);

作用:用于把一个字符串分割成字符串数组。返回的是字符串
trim();
语法:字符串对象.trim();

作用:去掉字符串的前后空格,无法去除中间空格。

Date对象

一、set类

var d = new Date();
//修改日期时间对象的值:
d.setFullYear(2000);
d.setMonth(11);		//取值范围0~11
d.setDate(2);		//取值范围0~31
d.setHours(12);		//取值范围0~23
d.setMinutes(23);	//取值范围0~59
d.setSeconds(2);	//取值范围0~59

二、get类

getDate();		//返回日期的号数(1-31)
getDay();		//返回星期(0-6)
getMonth();		//返回月份(0-11)
getFullYear();	//返回年份(四位数)
getTime();		//返回1970-1-1 , 毫秒数

三、to类

toLocaleString();	//返回本地时间(字符串),包括日期和时间
toLocaleDateString();
toLocaleTimeString();

四、日期转换

Date.parse(字符串);

正则表达式

定义:正则表达式是使用特定的符号来描述该组字符串的一种方法。即:正则表达式就是一个字符串模板,其本身也是—个字符串。

创建一个正则对象:

var regExp = new RegExp('模式字符串','参数');
var re = /^hello$/;	//直接量化方式,建议使用。

使用String的match()进行匹配。
正确,返回string
错误,返回null

使用正则表达式的test()进行匹配
正确,返回true
错误,返回false

以 /^ 匹配一个输入或行的开头
以 $/ 匹配一个输入或一行的结尾

规则如下:

\d 匹配一个字数字符,/\d/ = /[0-9]/
\D 匹配一个非字数字符,/\D/ = /[^0-9]/
\s 匹配一个空白字符,包括\n \r \f \t \v等
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\w 匹配一个可以组成单词的字符,等于[a-zA-ZO-9]
\W匹配一个不可以组成单词的字符,等于[^a-zA-Z0-9]

语法规则如下:

* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
? 匹配前面元字符)次或1,/ba*/将匹配b,ba
(x) 匹配x保存x在名为$1...$9的变量中
x|y 匹配x或y
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[^xyz] 不匹配这个集合中的任何一个字符

修饰符

g:全局匹配
i:不区分大小写
m:多行匹配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值