可用性JavaScript 1.1; JScript 3.0; ECMAScript v1; 在ECMAScript v3中得到增强 语法string.split(delimiter, limit) 参数
返回值一个字符串数组,是通过在delimiter指定的边界处将字符串string分割成子串创建的。返回的数组中的子串不包括delimiter自身,但下面列出的情况除外。 描述方法split()将创建并返回一个字符串数组,该数组中的元素是指定的字符串string 的子串,最多具有limit个。这些子串是通过从头到尾检索字符串中与delimiter 匹配的文本,在匹配文本之前和之后分割string得到的。返回的子串中不包括定界符 文本(下面提到的情况除外)。如果定界符从字符串开头开始匹配,返回的数组的第一个元素是空串,即出现在定界符之前的文本。同样,如果定界符与字符串的结尾匹 配,返回的数组的最后一个元素也是空串(假定与limit没有冲突)。 如果没有指定delimiter,那么它根本就不对string执行分割,返回的数组中只有一个元素,而不分割字符串元素。如果delimiter是一个空串或与空串匹配的正则表 达式,那么string中的每个字符之间都会被分割,返回的数组的长度与字符串长度相 等(假定王imic不小于该长度)。(注意,这是一种特殊情况,因为没有匹配第一个字符之前和最后一个字符之后的空串。) 前面说过,该方法返回的数组中的子串不包括用于分割字符串的定界符文本。但如果delimiter是包括子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹 配的子串(但不包括与整个正则表达式匹配的文本)。 注意,String.split()执行的操作与Array.join()执行的操作相反。 示例在使用结构复杂的字符串时,方法split()最有用。例如: "1:2:3:4:5".split(":"); // 返回 ["1","2","3","4","5"] "|a|b|c|".split("|"); // 返回 ["", "a", "b", "c", ""] split()方法的另—个常见用法是解析命令和与之相似的字符串,用空格将它们分割 成单词: var words = sentence.split(' '); 关于delimiter是一个空格的情况,详见“Bug'’小节。用正则表达式作为定界符, 很容易把字符串分割成单词: var words = sentence.split(/\s+/); 要把字符串分割成字符数组,可以用空串作为定界符。如果只想把字符串的前一部分 分割成字符数组,需要使用limit参数: "hello".split(""); // 返回 ["h","e","l","l","o"] "hello".split("", 3); // 返回 ["h","e","l"] 如果想使返回的数组包括定界符或定界符的一个或多个部分,可以使用带子表达式的正则表达式。例如,下面的代码将在HTML标记处分割字符串,返回的数组中包括这些标记: var text = "hello <b>world</b>"; text.split(/(<[^>]*>)/); // 返回 ["hello ","<b>","world","</b>",""] Bug在JavaScript的Netscape实现中,如果明确地把语言版本设置为1.2,split()方法具有特殊的行为,即如果delimiter 是一个空格,该方法将在空格处分割字符串,忽略字符串开头和结尾处的空白。 参阅Array.join( ), RegExp; Chapter 10 |