JavaScript字符串操作函数的简单总结
str.split(separator,howmany)
字符串的分割- separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
- howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
- 返回值:
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
var str = "H,o,w,?"; var res = str.split(","); // 得到["H" "o" "w" "?"] var res2 = str.split(""); // 若分割"",则得到包含所有字符的数组["H" "," "o" "," "w" "," "?"] var res3 = "a b c".split(/\s+/); //使用正则去除空白,得到["a" "b" "c"]
str.slice(start,end)
字符串的截取start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是str结束字符的下标(不包括该字符)。如果没有指定end,那么结果从 start 到 str 结束。
- 如果end为负数,那么它规定的是从尾部开始算起的字符。
- 如果start >= end,得到空字符串。
返回值:返回一个新字符串,包含从 start 到 end (不包括该元素)的 str 中的元素。注意原 str 没有改变。
slice
方法也适用于数组。
var str = "Hello World", res; res = str.slice(0, 7); // 此时str = "Hello World", res = "Hello W" res = str.slice(-4, -2); // res = "or" res = str.slice(5, 1); // res = ""
str.substring(start,end)
字符串的截取start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
- 如果start < 0 , 则会将start置为0再执行方法
end 可选。规定从何处结束选取。该参数是str结束字符的下标(不包括该字符)。如果没有指定end,那么结果从 start 到 str 结束。
- 如果start > end,则会交换 start 和 end 再执行。
返回值:返回一个新字符串,包含从 start 到 end (不包括该元素)的 str 中的元素。注意原 str 没有改变。
与
slice
的区别是substring
只适用于字符串,对start 和 end大小情况的处理也不一致。
var str = "Hello World", res; res = str.slice(0, 7); // 此时str = "Hello World", res = "Hello W" res = str.slice(-2, 7); // res = "Hello W", start变为0 res = str.slice(7, -2); // res = "Hello W", start和end交换
str.substr(start,length)
字符串的截取start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 str 的 start 到结尾的字串。
- 如果 length <= 0,得到空字符串。
返回值:返回一个新字符串,包含从 start 处开始的 length 个字符。注意原 str 没有改变。
重要事项:
- ECMAscript 没有对该方法进行标准化,因此反对使用它。
- 在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。
var str = "Hello World", res; res = str.substr(0, 7); // 此时str = "Hello World", res = "Hello W" res = str.substr(-4, 2); // res = "or" res = str.substr(5, -1); // res = ""
str.substr(str1, str2, ... , strN)
字符串的连接- str1 必需,可以是任意多个字符串。
- 返回值:返回一个新字符串,包含从 start 处开始的 length 个字符。注意原 str 没有改变。
var str = "Hello World", res; res = str.concat("!!!", "???"); // 此时str = "Hello World", res = "Hello World!!!???"
str.charAt(index)
取字符- index 必需,表示字符在字符串中的下标。
- 返回值:返回一个字符。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
var str = "Hello World", res; res = str.charAt(4); // res = "o" res = str.charAt(20); // res = "",index大于字符串长度
str.indexOf(target,fromIndex)
从前找出子串下标- target 必需,规定需检索的字符串值。
- fromIndex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 str.length - 1。如省略该参数,则将从字符串的首字符开始检索。
- 返回值:返回首次匹配子串的首个字符下标。如果要检索的字符串值没有出现,则该方法返回 -1。
var str = "Hello World Hello", res; res = str.indexOf("llo"); // 2 res = str.indexOf("llo", 2); // 虽然指定fromIndex,结果仍为2
str.lastIndexOf(target,fromIndex)
从后找出子串下标- target 必需,规定需检索的字符串值。
- fromIndex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 str.length - 1。如省略该参数,则将从字符串的最后一个字符开始检索。
- 返回值:返回一个指定的字符串值最后出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。
var str = "Hello World Hello", res; res = str.lastIndexOf("llo"); // 14 res = str.lastIndexOf("llo", 1); // -1 res = str.lastIndexOf("llo", 2); // str(2,4)为"llo",故得到 res = 2
str.toUpperCase()
大写转换- 返回值:返回一个新字符串,所有字符被转换成大写。
var str = "Hello World", res; res = str.toUpperCase(); // str = "Hello World" res = "HELLO WORLD"
str.toLowerCase()
小写转换- 返回值:返回一个新字符串,所有字符被转换成大写。
var str = "Hello World", res; res = str.toLowerCase(); // str = "Hello World" res = "hello world"
先写这么多。。