js中字符串的常见方法

JavaScript013

js中字符串的常见方法,第1张

首先创建一个字符串,创建字符串的方法有两种:

1.字面量:var str = "abc123efg456"

2.构造函数:var str = newString("abc123efg456")

其次,需要注意的是,javascript的字符串是不可变的,String类定义的方法都不可以改变字符串内容。若是需要通过方法改变字符串的内容,需要将返回值重新赋值给原来的字符串。如:str = str.toUpperCase()

下面,介绍比较常用的字符串的方法:

var str = "1abc123abc456abc"

功能:返回指定的字符串值在字符串中首次出现的位置。

参数:s为要检索的字符,必需n为可选的字符参数,规定字符串检索的位置。

demo:

var index1 = str.indexOf("a")

var index2 =str.indexOf("a",8)

var index3 =str.indexOf("a",14)

console.log(index1)// 1

console.log(index2)// 13

console.log(index3)// -1  从检索的位置检索不到字符,返回-1

功能:返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

参数:s为要检索的字符,必需n为可选的字符参数,规定字符串检索的位置。

demo:

var index1 =str.lastIndexOf("a") 

var index2 =str.lastIndexOf("a",11)

var index3 =str.lastIndexOf("a",0)

console.log(index1)// 13

console.log(index2)// 7

console.log(index3)// -1  从检索的位置检索不到字符,返回-1

功能:返回指定位置的字符。

参数:n表示字符串中某个位置的索引,不写默认为第0个字符。

demo:

var s = str.charAt(3)

console.log(s)  // c

功能:返回指定位置的字符的Unicode编码。

参数:n表示字符串中某个位置的索引,可以没有参数,默认是索引为0的参数。

demo:

var s = str.charCodeAt(3)

console.log(s)  // 99

注:c的unicode编码为99。

注意:charAt(n)方法和charCodeAt(n)方法类似,前者返回的是字符,后者返回的是字符的unicode编码。

功能:将编码转成字符方法。

参数:十进制和十六进制,不支持unicode编码。

demo:

var s1 =String.fromCharCode("0x56fd")

var s2 = String.fromCharCode(22269)

console.log(s1)   //国

console.log(s2)  //国

注:“国”的十六进制编码是56fd,十进制是22269。

功能:根据指定位置,截取子串,从m到n,不包括n。

参数:m,n为索引。

demo:

var s = str.slice(2,7)

console.log(s)// bc123

功能:根据指定位置,截取子串,从m到n,不包括n。

参数:m,n为索引。

demo:

var s = str.substring(2,7)

console.log(s)// bc123

功能:根据指定位置,截取子串,从m位置取,共取n个。

参数:m,n为索引。

demo:

var s = str.substr(2,7)

console.log(s)// bc123ab

功能:字符串替换。

参数:oldstr为需要被替换的字符,newstr为替换的字符。

demo:

var s =str.replace("a","l")

console.log(s)// 1lbc123abc456abc

注意:每次只能替换一个符合条件的字符。

功能:分割字符,返回成为数组。

参数:"s"为分割的字符。

demo1:

var arr1 = str.split("b")

console.log(arr1)  // ["1a", "c123a","c456a", "c"]

demo2:

var arr2 = str.split()//["1abc123abc456abc"]

console.log(arr2)

demo3:

var arr3 = str.split("")

console.log(arr3)// ["1","a", "b", "c", "1", "2","3", "a", "b", "c", "4","5", "6", "a", "b", "c"]

注意:参数不写的时候,返回原字符串组成的数组参数为空字符的时候,将每个字符分割,返回一个数组

功能:检索字符串中指定的子字符串,返回第一个与字符串匹配的索引值。

参数:需要被检索的字符串。

demo:

var s1= str.search("abc")

var s2 = str.search("efg")

console.log(s1)// 1

console.log(s2)// -1

注:如果没有找到任何匹配的子串,则返回-1。

功能:在字符串内检索指定的值,匹配到就返回指定的字符值。

参数:需要被检索的字符串。

demo:

var s1= str.match("abc")

var s2 = str.match("efg")

console.log(s1)// ["abc",index: 1, input: "1abc123abc456abc", groups: undefined]

console.log(s2)// null

注:该方法类似indexOf()和lastIndexOf(),但是它返回指定的值,没有就返回null

功能:连接两个或多个字符串,返回连接后的字符串。

参数:需要连接的字符串。

demo:

var str1="abc "

var str2="123"

console.log(str1.concat(str2))   // "abc 123"

提示:如果需要拼接字符串,用运算符“+”更简单。

功能:把字符串转换为小写。

参数:无

demo:

var str = "ABC abc"

console.log(str.toLowerCase())// abcabc

功能:把字符串转换为大写。

参数:无

demo:

var str = "ABC abc"

console.log(str.toUpperCase())// ABCABC

功能:把字符串显示为大号字体。

参数:无

demo:

var s = str.big()

document.write(str+"")

document.write(s)

功能:把字符串显示为小号字。

参数:无

demo:

var s = str.small()

document.write(str+"")

document.write(s)

功能:把字符串显示为粗体。

参数:无

demo:

var s = str.bold()

document.write(str+"")

document.write(s)

功能:把字符串显示为斜体。

参数:无

demo:

var s = str.italics()

document.write(str+"")

document.write(s)

功能:将字符以指定的颜色显示。

参数:颜色名(red)、RGB 值(rgb(255,0,0))或者十六进制数(#FF0000)。

demo:

var s = str.fontcolor("red")

document.write(str+"")

document.write(s)

功能:将字符以指定的字号显示。

参数:size参数必须是从1和7之间的数字,1表示小的字号,7表示最大的字号。

demo:

var s = str.fontsize(7)

document.write(str+"")

document.write(s)

功能:把字符串显示为超链接。

参数:链接的URL。

demo:

var s =str.link("http://www.baidu.com")

document.write(str+"")

document.write(s)

功能:把字符串加字符串显示。

参数:无

demo:

var s = str.strike()

document.write(str+"")

document.write(s)

以上是对字符串方法的整理,如有修改、补充,后续会更新。

文中如果纰漏,错误,不合理,描述不清晰,不准确等问题,欢迎大家留言指正...

(1).是个属性 不是个方法;

(2).返回 字符串的长度 如果字符串内有空格 则将空格也算在内;

(1)返回指定位置的字符;

(2)括号内的参数 写需要返回的内容的索引值;

(1)用于拼接两个或多个字符串;

(2)不改变原字符串 返回一个拼接完成的字符串的 副本;

(3)可以拼接数字 会把数字强制成字符串;

(4)也可以拼接数组 但是会将分隔符一起转化为字符串;

(1)从前往后搜索

(2)返回某个指定的字符串 值 在字符串中首次出现的位置

(3)如果没有搜索到 则返回-1

(1)从后往前搜索

(2)返回某个指定的字符串 值 在字符串中首次出现的位置

(2)如果没有搜索到 则返回-1

(1)在字符串中 用一些字符串替换另一些字符串

(2)两个参数:

(3)如果有多个值 被匹配上 从前往后只替换第一个值

(1)用于把一个字符串分割成 带有字符串的数组

(2)不写参数 会将整个字符串作为一个元素 存到数组里面 不改变原字符串 返回生成的数组

(3)如果只写一个 空元素(' ')则将字符串 每一个值都作为元素 存到数组里面 包括字符串里面的空格

(4)如果写了参数 在字符串两端 则将参数 转化成空元素

(5)反之 将参数 转译成分隔符

(6)如果是两个参数 第二个参数 代表 生成的数组的长度

(1)可在字符串中抽取以指定索引值开始的指定数目的字符

(2)只有一个参数的时候 从指定地方开始 一直到结束

(3)两个参数 从指定位置开始 截取指定长度

(1)提取字符串 指定开始位置 到指定结束位置 之间的字符

(2)只有一个参数的时候 从指定地方开始 一直到结束

(3)两个参数 从指定位置开始 到指定位置结束

(1)用来将字符串转为小写

(2)仅针对于英文字母

(1)用来将字符串转为大写

(2)仅针对英文字母

(1)向数组末尾添加元素,并返回新的长度

(2)直接修改原数组,而不是创建新数组

(3)可以往数组中添加数组,但是被添加的数组是作为元素存储在原数组中,而不是拼接

(1)向数组开头添加元素,并返回新的长度

(2)直接修改原数组,而不是创建新数组

(3)可以往数组中添加新数组,但是被添加的数组是作为元素存储在原数组中,而不是拼接

(1)删除并返回数组的最后一个元素,修改原数组

(2)将数组长度-1

(3)如果数组为空,pop()不改变原方法,返回underfined

将数组的第一个元素删除并返回值,修改原数组

(1)向数组中添加一个元素,或删除一个元素(返回删除元素)

(2)可以添加数组,但是被添加的数组以元素形式添加

(3)删除和添加可以同时进行

(1)用来连接两个或多个数组,该方法不会改变现有数组

(2)只会返回一个被连接数组的副本

(3)副本数组的拼接,是按顺序拼接,接受的数组在前面,往进添加的数组在后面,不是以元素形式存在,直接拼接

(1)分隔符可以是','空格,只作用与最外层数组元素

(2)用来把数组中所有的元素放入一个字符串,数组转化字符串方法

(3)不会改变原数组,会返回一个新的字符串,可用变量接收

(4)如果原数组是二维数组,会将里面作为元素的数组,也转化为字符串

返回截取新数组,start必写

1.对NEWS,NEWS[i]使用局部变量是高效的:

var newsElem =NEWS[i]。NEWS[i].LINK ->newsElem.LINK NEWS[i].TITLE ->newsElem.TITLE

2.同理,对于NEWS.length也应该做缓存, for (var i=0, len= NEWS.lengthlen >ii++) //小于符号会被知乎吃掉,反过来写的大于

3.使用join代替字符串拼接这个技巧对于IE6、7有显著性能提升,同时对现代浏览器,没有太过明显的性能损耗,鉴于目前IE6、7市场占有率并不低,且它们的JS引擎执行性能低下,垃圾回策略收策略弱智,这个优化是划算的。