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