JS字符串常用方法和属性

220 阅读5分钟

JS最常用的属性是length,返回字符串的长度。用法如下:

var a = "刘小妞"

var b = a.length

alert(b)

属性就这一个,我们重点学习常用的方法。

字符串的方法都不会改变字符串本身,是会返回全新的字符串。

查找 返回位置

indexOf(searchvalue,fromindex)方法返回字符串中指定文本首次出现的位置。

第一个参数是要查找的文本,必填。

第二个参数是可选的整数参数。规定在字符串中开始查找的位置。它的合法取值是 0 到 字符串长度 - 1。如省略该参数,则将从字符串的首字符开始查找。

位置是从0开始,也就是说,返回0,表示字符串中的第一个位置,1表示第二个位置,依次类推…… 用法如下:

var a = "刘小妞的栖息地"

var b = a.indexOf("刘") //b的值会是0

lastIndexOf(searchvalue,fromindex)方法返回指定文本在字符串中最后一次出现的位置。参数和indexOf一样。fromindex参数如果不设置,将从字符串的最后一个字符开始查找。

lastIndexOf查找的开始顺序和indexOf是相反的。

indexOf是从开始查找的位置向结束位置查找。

lastIndexOf是从开始查找的位置向开始位置查找。

写一个两个参数的小例子。

var str = "hello word! hello Liu"

var pos = str.indexOf('hello',2) //返回12

var lastpos = str.lastIndexOf('hello',7) //返回0

fromindex不管是indexOf还是lastIndexOf,都是从首字符开始数。

indexOf() 和 lastIndexOf()区分大小写。如果没有找到字符串,返回 -1。

所以,我们经常用indexOf()来检查一个字符串里是否有某个字符串,如果返回值大于-1,就是存在,否则就是不存在。

search(regexp)方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,返回匹配的位置。

它只有一个参数。这个参数可以是文本,也可以是正则表达式。它和indexOf很像。但是,它不能指定查找位置,它总是从第一个字符开始查找。但是,它支持正则表达式查找。正则表达式是很强大的,我们在后面的文章会讲到。

提取 返回字符串

slice(start, end)提取字符串的某个部分并在新字符串中返回被提取的部分。

该方法设置两个参数:start 开始位置(从0开始),end

结束位置。end参数是可选的,如果不设置,则返回从开始位置到原字符串结尾的字符串。

写个例子:

var str = "hello word!"

var substr = str.slice(6,10) //返回word

返回的子字符串包括开始位置的字符,不包括结束位置的字符。

start和end可以是负数。如果是负数,那么它查找的位置是从字符串的尾部开始算起,-1指字符串的最后一个字符,-2指倒数第二个字符,以此类推。比如:

var str = "hello word!"

var substr = str.slice(-10,-6) //返回ello

substring(start,stop) 功能和slice一样。它们的区别如下:

substring参数不能为负数;

substring的第一个参数如果大于第二个参数,在提取子串之前,会先交换这两个参数。slice不会交换,会返回空串。

substr(start,length) 功能和slice也类似。只不过,它的第二个参数表示的子串的长度,是可选的,如果不设置,则返回从开始位置到原字符串结尾的字符串。第一个参数和slice一样。

match(searchvalue/regexp) 匹配结果会放到一个数组返回。它只有一个参数,参数是字符串或者正则表达式。比如:

var str="Hello world!

var s = str.match("world")

s是一个数组,s[0]是world。

charAt(index) 返回指定位置的字符,参数表示字符下标。从0开始,不能为负数。比如:

var str = "hello word!"

var substr = str.charAt(1) //返回e

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

第一个参数表示要被替换的串,第二个参数表示替换成的新串。两个参数都是必需的。

第一个参数支持正则表达式,第二个参数可以是函数。

今天我们只介绍两个参数都是字符串这种形式,如果都是字符串,它是区分大小写的,而且只会替换第一个匹配到的字符串。写个小例子。

var str = "hello word!"

var newStr = str.replace('word','刘小妞')//返回 hello 刘小妞!

concat(str1,str2,str3,……) 连接字符串。参数可以是1个或多个字符串。

这个方法和用“+”号运算符连接字符串是一样的效果。比如:

var str = "刘小妞"

var newStr = str.concat('栖息地')

var newStr1 = str + '栖息地'

newStr和newStr1是相等的。

toUpperCase() 把字符串转换为大写。

toLowerCase() 把字符串转换为小写。

写个小例子:

var str = "Hello Word!"

var str1 = str.toUpperCase() //返回 HELLO WORD!

var str2 = str.toLowerCase() //返回 hello word!

trim() 删除字符串两端的空白符。

split(separator,howmany) 将字符串转换为数组。

separator参数可以是字符串或者正则表达式,表示分隔符。

howmany参数可选,表示返回的数组的长度。如果不设置,则返回全部。

写个下例子:

var str = "Hello Word!"

var arr = str.split(" ")

arr[0] //Hello