前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 字符串

JavaScript 字符串

作者头像
Nian糕
修改2024-03-19 15:05:44
7090
修改2024-03-19 15:05:44
Unsplash
Unsplash

字符串的转换

toString() 方法,返回一个表示该对象的字符串,可以将所有的数据都转换为字符串,但是要排除掉 nullundefined

代码语言:javascript
复制
var a = 10;
console.log(a.toString());
运行结果
运行结果

.toString() 括号中的可以写一个数字,代表进制,即.toString(2);代表该字符串的二进制

运行结果
运行结果

String() 函数,把对象的值转换为字符串,可以将 nullundefined 转换为字符串,但是没法转进制字符串

代码语言:javascript
复制
var a =10;
console.log(String(a));
运行结果
运行结果

注释:方法是属于对象的,而字符串能够使用方法,是因为 ECMAScript 提供了 3 种特殊的引用类型:Boolean,Number,String。实际上,每当读取一个基本类型值时,后台就会创建一个对应的基本包装类型的对象

字符串的创建

创建 String 对象一共有一下三种方法:

代码语言:javascript
复制
var str = new String("Nian糕");
var str1 = String("Nian糕");
var str2 = "Nian糕";

第一种是使用 String 构造函数严格的定义一个字符串对象,返回的也是一个对象 (object);

第二种是调用 String 函数,将转换参数 "Nian糕" 为原始字符串字符串并返回;

第三种是定义一个字符串变量,但在 JavaScript 仍然按照字符串对象来处理,我们通过 typeof 来看下区别

代码语言:javascript
复制
console.log(typeof str);
console.log(typeof str1);       
console.log(typeof str2);   
运行结果
运行结果

通过数组下标来获取字符串中的某一字符

代码语言:javascript
复制
var str = "hello world!";
console.log(str[0]);
console.log(str[5]);
console.log(str[11]);
运行结果
运行结果

String 类型都有一个 length 属性,表示字符串包含多少个字符

代码语言:javascript
复制
var str = "hello world!";
console.log(str.length);
运行结果
运行结果

接下来介绍下 String 对象常用的一些方法,我们一般只需要记住常用的就可以了,至于其他的一些方法,在需要用到的时候,再去查询就可以了

字符串操作

a. 字符串拼接

concat() 方法,将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回

代码语言:javascript
复制
str.concat(string2, string3[, ..., stringN])
运行结果
运行结果

b. 字符串替换

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串

代码语言:javascript
复制
stringObject.replace(regexp/substr,replacement)

参数 regexp / substr 必需,规定子字符串或要替换的模式的 RegExp 对象,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象replacement必需,一个字符串值,规定了替换文本或生成替换文本的函数

运行结果
运行结果

如果需要全局替换,只要在替换字符串后加上一个 g 就可以了

运行结果
运行结果

c. 字符串查找,返回字符子串

charAt() 方法从一个字符串中返回指定的字符

代码语言:javascript
复制
str.charAt(index)

参数 index 一个介于 0 和 1 - 小于字符串的长度之间的整数 (0~n-1),如果没有提供索引,charAt() 将使用 0

返回值 字符串中的字符从左向右索引,第一个字符的索引值为 0,最后一个字符的索引值为 stringName.length - 1,如果指定的 index 值超出了该范围,则返回一个空字符串

运行结果
运行结果

d. 字符串查找,返回 Unicode 编码

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码,这个返回值是 0 - 65535 之间的整数

代码语言:javascript
复制
stringObject.charCodeAt(index)

参数 index 一个大于等于 0,小于字符串长度的整数,如果不是一个数值,则默认为 0

返回值 返回值是一表示给定索引处字符的 UTF-16 代码单元值的数字;如果索引超出范围,则返回 NaN

运行结果
运行结果

注释:与该方法对应的一个方法是 fromCharCode(),返回使用指定的Unicode值序列创建的字符串,大家可以自行了解,在这里不做过多的介绍

e. 字符串查找,返回位置

search() 方法,执行正则表达式和 String 对象之间的一个搜索匹配

代码语言:javascript
复制
str.search(regexp)

参数 regexp,一个正则表达式 (regular expression) 对象,如果传入一个非正则表达式对象,则会使用 new RegExp(obj) 隐式地将其转换为正则表达式对象

返回值 如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引,否则,返回 -1

运行结果
运行结果

f. 字符串分割

split() 方法将一个 String 对象分割成字符串数组,通过将字符串分成子串

代码语言:javascript
复制
str.split([separator],[limit])

参数 separator 指定用来分割字符串的字符,separator 可以是一个字符串或正则表达式, 如果忽略 separator,则返回整个字符串的数组形式,如果 separator 是一个空字符串,则 str 将会把原字符串中每个字符的数组形式返回

limit 一个整数,该参数可选,限定返回的分割片段数量,split 方法仍然分割每一个匹配的 separator,但是返回的数组只会截取最多 limit 个元素

运行结果
运行结果

g. 获取字符的位置

indexOf() 方法,返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回 -1

代码语言:javascript
复制
stringObject.indexOf(searchvalue,fromindex)

参数 searchElement 要查找的元素

fromIndex 开始查找的位置,如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回 -1;如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即 -1 表示从最后一个元素开始查找,-2 表示从倒数第二个元素开始查找 ,以此类推

返回值 首个被找到的元素在数组中的索引位置,若没有找到则返回 -1

运行结果
运行结果

h. 获取字符最后出现的位置

lastIndexOf() 方法,返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1,从该字符串的后面向前查找,从 fromIndex 处开始

代码语言:javascript
复制
str.lastIndexOf(searchValue[, fromIndex])

参数 searchValue 一个字符串,表示被查找的值

fromIndex 从调用该方法字符串的此位置处开始查找,可以是任意整数,默认值为 str.length,如果为负值,则被看作 0,如果 fromIndex > str.length,则 fromIndex 被看作 str.length

运行结果
运行结果

i. 字符提取

slice() 方法,将数组的一部分浅拷贝, 返回到从开始到结束(不包括结束)选择的新数组对象,原始数组不会被修改

代码语言:javascript
复制
str.slice(beginSlice[, endSlice])

beginSlice 从该索引(以 0 为基数)处开始提取原字符串中的字符,如果值为负数,会被当做 sourceLength + beginSlice 看待,这里的 sourceLength 是字符串的长度 (例如, 如果 beginSlice 是 -3 则看作是 sourceLength - 3)

endSlice 可选,在该索引(以 0 为基数)处结束提取字符串,如果省略该参数,slice 会一直提取到字符串末尾,如果该参数为负数,则被看作是 sourceLength + endSlice,这里的 sourceLength 就是字符串的长度(例如,如果 endSlice 是 -3,则是 sourceLength - 3)

运行结果
运行结果

j. 字符提取

substring() 方法,返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集

代码语言:javascript
复制
str.substring(indexStart[, indexEnd])

参数 indexStart 一个 0 到字符串长度之间的整数

indexEnd 可选,一个 0 到字符串长度之间的整数

运行结果
运行结果

关于字符提取的方法还有一个,我们来简单了解一下

substr() 方法,返回一个字符串中从指定位置开始到指定字符数的字符

代码语言:javascript
复制
str.substr(start[, length])

参数 start 开始提取字符的位置,如果为负值,则被看作 strLength + start,其中 strLength 为字符串的长度

length 可选,提取的字符数

注释: ECMAscript 没有对该方法进行标准化,因此不推荐使用该方法

k. 大小写转换

toLowerCase() 会将调用该方法的字符串值转为小写形式,并返回

toUpperCase() 将调用该方法的字符串值转换为大写形式,并返回

运行结果
运行结果

l. 字符串匹配

match() 方法,当一个字符串与一个正则表达式匹配时, 检索匹配项

代码语言:javascript
复制
str.match(regexp);

参数 regexp 一个正则表达式对象,如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp ,如果你未提供任何参数,直接使用 match(),那么你会得到一个包含空字符串的 Array : [""]

返回值 array 一个包含了整个匹配结果以及任何括号捕获的匹配结果的 Array ,如果没有匹配项,则返回 null

运行结果
运行结果

m. 去掉首尾空格

trim() 方法会删除一个字符串两端的空白字符,在这个字符串里的空格包括所有的空格字符 (space, tab, no-break space 等)以及所有的行结束符(如 LF,CR)

运行结果
运行结果
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.03.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串的转换
  • 字符串的创建
  • 字符串操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档