Ядро JavaScript 1.5. Справочник

       

Split


Делит String-объект на массив строк, разделяя строку на подстроки.

Метод из

Реализован вJavaScript 1.1, NES 2.0

Версия ECMA

ECMA-262 (если в качестве сепаратора строка)
ECMA-262 Edition 3 (если в качестве сепаратора регулярное выражение)


Синтаксис

split([separator][, limit])

Параметры

separator

Специфицирует символ, используемый при разделении строки в качестве сепаратора. Он обрабатывается как строка или как регулярное выражение. Если сепаратор отсутствует, возвращаемый массив содержит один элемент - всю строку целиком.

limit


Целое число, специфицирующее ограничение количества находимых разделений.

Описание

Метод split возвращает новый массив.

Если найден, сепаратор удаляется из строки и подстрок, возвращаемых в массиве. Если сепаратор опущен, массив содержит один элемент - всю строку.

В JavaScript 1.2 и позже, split имеет следующие дополнения:

  • Он может принимать регулярное выражение в качестве аргумента, а также фиксированную строку, по которым разделяется строка-объект. Если сепаратор - регулярное выражение, любые имеющиеся скобки вызывают включение подсовпадений в возвращаемый массив.

  • Может принимать ограниченное количество элементов, так что результирующий массив не будет содержать пустые ведомые элементы.
  • Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге SCRIPT, String.split(" ")

    делит строку при каждом прогоне одним или более пробельными символами, включая пробелы, табуляцию, прогоны строки и возвраты каретки. Для этого LANGUAGE="JavaScript1.2" обязано быть специфицировано в тэге <SCRIPT>.


    Примеры


    Пример 1.
  • В этом примере определяется функция, которая делит строку на массив строк, используя специфицированный разделитель. После разделения строки, функция выводит сообщения, содержащие строку-оригинал (до разделения), используемый сепаратор, количество элементов массива и отдельные элементы массива.

    function splitString (StringTosplit,separator) {

     arrayOfStrings = StringTosplit.split(separator)

     document.write ('<P>The original String is: "' + StringTosplit + '"')

     document.write ('<BR>The separator is: "' + separator + '"')

     document.write ("<BR>The array has " + arrayOfStrings.length + " elements: ")

     for (var i=0; i < arrayOfStrings.length; i++) {

        document.write (arrayOfStrings[i] + " / ")
     }

    }

    var tempestString="Oh brave new world that has such people in it."

    var monthString="Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"

    var space=" "

    var comma=","

    splitString(tempestString,space)

    splitString(tempestString)

    splitString(monthString,comma)

    Это пример производит следующий вывод:

    The original String is: "Oh brave new world that has such people in it."

    The separator is: " "

    The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. /

    The original String is: "Oh brave new world that has such people in it."

    The separator is: "undefined"

    The array has 1 elements: Oh brave new world that has such people in it. /

    The original String is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"

    The separator is: ","

    The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /

    Пример 2.

    Рассмотри следующий скрипт:

    <SCRIPT LANGUAGE="JavaScript1.2">

    str="She sells seashells \nby the\n seashore"

    document.write(str + "<BR>")

    a=str.split(" ")

    document.write(a)

    </SCRIPT>

    При использовании LANGUAGE="JavaScript1.2" это скрипт даст:

    "She", "sells", "seashells", "by", "the", "seashore"

    Без LANGUAGE="JavaScript1.2" этот скрипт разделит только по отдельным пробельным символам, что даст:

    "She", "sells", , , , "seashells", "by", , , "the", "seashore"

    Пример 3.

    Здесь split ищет 0 или боле символов пробела с последующим символом "точка с запятой" с последующими 0 или более пробелами и, если совпадение найдено, удаляет пробелы из строки.

    nameList это массив, возвращаемый как результат работы split.

    <SCRIPT>

    names = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ";

    document.write (names + "<BR>" + "<BR>");

    re = /\s*;\s*/;

    nameList = names.split (re);

    document.write(nameList);

    </SCRIPT>

    В результате печатаются две строки; первая - строка-оригинал, вторая - результирующий массив.

    Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand
    Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand

    Пример 4.

    В этом примере split ищет в строке 0 или более пробелов и возвращает первые три найденные разделения.

    <SCRIPT LANGUAGE="JavaScript1.2">

    myVar = " Hello World. How are you doing? ";

    splits = myVar.split(" ", 3);

    document.write(splits)

    </SCRIPT>

    Скрипт отображает:

    ["Hello", "World.", "How"]

    См. также

    , , .



    Содержание раздела