字符串的分割方法在js中经常会用到,每次用的时候我都会去搜索一遍,很麻烦,今天特地整理了一下,方便今后查阅。
slice
stringObject.slice(start,[end])
返回一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
start如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
substring
stringObject.substring(start,[stop])
返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
注:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
substring()的第二个参数是负数的话,例子中会把第二个参数转换为0,变为substring(3,0),这个方法会将较小的数作为开始位置,较大的数作为结束位置,相当于substring(0,3)。
substr(非标准)
stringObject.substr(start,[length])
返回一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 lenght 个字符。如果没有指定 lenght,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
注:IE负值会返回原始字符串
substr()的第二个参数是负数的话,也会把第二个参数转换为0,变为substr(3,0)。
slice(),substring(),substr()不会修改字符串本身的值
例:
var stringValue="hello world"; alert(stringValue.slice(3)); //"lo world" alert(stringValue.substring(3)); //"lo world" alert(stringValue.substr(3)); //"lo world" alert(stringValue.slice(3,7)); //"lo w" alert(stringValue.substring(3,7)); //"lo w" alert(stringValue.substr(3,7)); //"lo worl" alert(stringValue.slice(-3)); //"rld" alert(stringValue.substring(-3)); //"hello world" alert(stringValue.substr(-3)); //"rld" alert(stringValue.slice(3,-4)); //"lo w" alert(stringValue.substring(3,-4)); //"hel" alert(stringValue.substr(3,-4)); //""
split
stringObject.split(separator,[howmany])
separator:字符串或正则表达式,从该参数指定的地方分割 stringObject。
返回一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
例:
"2:3:4:5".split(":") //将返回["2", "3", "4", "5"]
"|a|b|c".split("|") //将返回["", "a", "b", "c"]
"hello".split("", 3) //可返回 ["h", "e", "l"]