Javascript.RU

PHP-функция: explode

Javascript:

function explode( delimiter, string ) {	// Split a string by string
	// 
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: kenneth
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

	var emptyArray = { 0: '' };

	if ( arguments.length != 2
		|| typeof arguments[0] == 'undefined'
		|| typeof arguments[1] == 'undefined' )
	{
		return null;
	}

	if ( delimiter === ''
		|| delimiter === false
		|| delimiter === null )
	{
		return false;
	}

	if ( typeof delimiter == 'function'
		|| typeof delimiter == 'object'
		|| typeof string == 'function'
		|| typeof string == 'object' )
	{
		return emptyArray;
	}

	if ( delimiter === true ) {
		delimiter = '1';
	}

	return string.toString().split ( delimiter.toString() );
}

Примеры:

explode(' ', 'Kevin van Zonneveld');
{0: 'Kevin', 1: 'van', 2: 'Zonneveld'}


Автор: vasa_c, дата: 24 июня, 2008 - 12:19
#permalink

Какой смысл во всех этих бесчисленных проверках?


Автор: Илья Кантор, дата: 3 июля, 2008 - 15:20
#permalink

Насколько я понял, автор постарался сделать поведение функции максимально идентичным php...

Обычно достаточно просто split:

var str = "a,b,c"
str.split(',') // => массив ["a","b","c"]

Автор: alex33, дата: 4 ноября, 2013 - 07:49
#permalink

Обычно достаточно просто split

Согласен.


Автор: Алексей Качаев (не зарегистрирован), дата: 10 декабря, 2008 - 19:32
#permalink

Все эти проверки здесь нужны для того, чтобы в случае некорректного ввода аргументов функция отдавала те же результаты, какие отдает в PHP.


Автор: SviMik (не зарегистрирован), дата: 11 июля, 2011 - 17:56
#permalink

Вы $limit забыли.

array explode ( string $delimiter , string $string [, int $limit ] )

Автор: andrey12323 (не зарегистрирован), дата: 15 марта, 2012 - 11:47
#permalink

Хорошо ты подшутил с limit :-D


Автор: Александриус (не зарегистрирован), дата: 30 мая, 2012 - 18:23
#permalink

С чего ты взял что насчет limit это шутка???


Автор: Гость (не зарегистрирован), дата: 1 октября, 2013 - 18:56
#permalink

Я конечно понимаю, что канонически кошерно создавать аналоги функций и не пользоваться ОО возможностями языков, но кто отменял простое:

var a = "word,of,split";

a.split(",");

Автор: f0ma (не зарегистрирован), дата: 9 июня, 2014 - 13:40
#permalink

вот правильная версия, полностью аналогична пыховой:
function explode(d, s, l)
{
    var out=[], tmp, pos;
    if (l)
    {
        tmp = s;
        pos = s.indexOf(d)
        while(l-1 && pos>=0)
        {
            out.push(tmp.substr(0, pos));
            tmp = tmp.substr(pos+d.length);
            l--;
            pos = tmp.indexOf(d);
        }
        out.push(tmp);
    }
    else
        out = s.split(d);
    return out;
}


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2022 - 20:33
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 00:30
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 13:19
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 14:31
#permalink

Автор: SLOT GACOR (не зарегистрирован), дата: 2 августа, 2023 - 10:55
#permalink

Silahkan main disini bosku, mantap menang terus tanpa berhenti bosku di permainan ini kancilbola

Main terus dan dapatkan bonus yang berlimpah setiap hari nya di kancilbola

Saat ini sedang gacornya di permainan slot pada situs ini kancilbola

Permainan yang paling menguntungan dan selalu hoki slot gacor

Lebih besar kemenangannya dari pada kekalahannya slot gacor


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
8 + 6 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum