JavaScript 字符串

Unsplash

1.字符串的转换

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

var a = 10;
console.log(a.toString());

运行结果

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

运行结果

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

var a =10;
console.log(String(a));

运行结果

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

2. 字符串的创建

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

var str = new String("Nian糕");
var str1 = String("Nian糕");
var str2 = "Nian糕";

第一种是使用 String 构造函数严格的定义一个字符串对象,返回的也是一个对象 (object); 第二种是调用 String 函数,将转换参数 "Nian糕" 为原始字符串字符串并返回; 第三种是定义一个字符串变量,但在 JavaScript 仍然按照字符串对象来处理,我们通过 typeof 来看下区别

console.log(typeof str);
console.log(typeof str1);       
console.log(typeof str2);   

运行结果

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

var str = "hello world!";
console.log(str[0]);
console.log(str[5]);
console.log(str[11]);

运行结果

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

var str = "hello world!";
console.log(str.length);

运行结果

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

3. 字符串操作

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

str.concat(string2, string3[, ..., stringN])

运行结果

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

stringObject.replace(regexp/substr,replacement)

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

运行结果

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

运行结果

c. 字符串查找,返回字符子串 charAt() 方法从一个字符串中返回指定的字符

str.charAt(index)

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

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

运行结果

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

stringObject.charCodeAt(index)

参数 index 一个大于等于 0,小于字符串长度的整数,如果不是一个数值,则默认为 0 返回值 返回值是一表示给定索引处字符的 UTF-16 代码单元值的数字;如果索引超出范围,则返回 NaN

运行结果

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

e. 字符串查找,返回位置 search() 方法,执行正则表达式和 String 对象之间的一个搜索匹配

str.search(regexp)

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

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

运行结果

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

str.split([separator],[limit])

参数 separator 指定用来分割字符串的字符,separator 可以是一个字符串或正则表达式, 如果忽略 separator,则返回整个字符串的数组形式,如果 separator 是一个空字符串,则 str 将会把原字符串中每个字符的数组形式返回 limit 一个整数,该参数可选,限定返回的分割片段数量,split 方法仍然分割每一个匹配的 separator,但是返回的数组只会截取最多 limit 个元素

运行结果

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

stringObject.indexOf(searchvalue,fromindex)

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

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

运行结果

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

str.lastIndexOf(searchValue[, fromIndex])

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

运行结果

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

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() 方法,返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集

str.substring(indexStart[, indexEnd])

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

运行结果

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

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

str.substr(start[, length])

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

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

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

运行结果

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

str.match(regexp);

参数 regexp 一个正则表达式对象,如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp ,如果你未提供任何参数,直接使用 match(),那么你会得到一个包含空字符串的 Array : [""] 返回值 array 一个包含了整个匹配结果以及任何括号捕获的匹配结果的 Array ,如果没有匹配项,则返回 null

运行结果

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

运行结果

End of File

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Type Script 的基本概念及常用语法

    TypeScript 是一种由微软开发的自由和开源的编程语言,它作为 JavaScript 的一个超集,扩展了JavaScript 的语法,而且本质上向这个语言...

    Nian糕
  • JavaScript 实现 Tab 点击切换

    Tab 选项卡切换效果在现如今的网页中,运用的也是比较多的,包括点击切换、滑动切换、延迟切换、自动切换等多种效果,在这篇博文里,我们是通过原生 JavaScri...

    Nian糕
  • JavaScript 常见面试题分析(一)

    这道题考察的是 JS 的变量类型,JS 的变量类型有值类型和变量类型两种,值类型包括 undefined、字符串、数字、布尔值,引用类型包括对象、数组、函数

    Nian糕
  • php字符串操作函数大全

    仙士可
  • Python|字符串的知识

    字符串是字符的序列表示,可以由一对单引号(‘),双引号(“)或三引号(‘’’)构成。其中单引号和双引号都可以表示单行字符,两者作用相同。使用单引号时,双引号可以...

    算法与编程之美
  • 房上的猫:字符串

    一.使用字符串  1.方法:   (1)定义并初始化字符串   (2)使用字符串,对字符串进行一些处理  2.语法:  (1)String s = ""; ...

    房上的猫
  • python3 str各个功能记录

    py3study
  • 常用函数之字符串时间等

    mysqli_real_escape_string() — 使用反斜线引用字符串 sql注入

    老雷PHP全栈开发
  • 常用函数之字符串时间等

    mysqli_real_escape_string() — 使用反斜线引用字符串 sql注入

    老雷PHP全栈开发
  • PHP字符串操作函数

    这两个函数都是按字节进行字符串比较,其中strcmp()函数区分大小写,strcasecmp()不区分大小写

    白胡杨同学

扫码关注云+社区

领取腾讯云代金券