Javascript Эквивалент PHP Разнесение () - PullRequest
332 голосов
/ 23 декабря 2010

У меня есть строка, которая выглядит следующим образом:

0000000020C90037: TEMP: data

И мне нужно получить все после первого двоеточия, так что у меня естьTEMP: data.

Я не часто работаю в Javascript, если бы это был PHP, я бы сделал это:

$str = '0000000020C90037:TEMP:data';
$arr = explode(":", $str);
$var = $arr[1].":".$arr[2];

Ответы [ 17 ]

583 голосов
/ 23 декабря 2010

Это прямое преобразование из вашего кода PHP:

//Loading the variable
var mystr = '0000000020C90037:TEMP:data';

//Splitting it with : as the separator
var myarr = mystr.split(":");

//Then read the values from the array where 0 is the first
//Since we skipped the first element in the array, we start at 1
var myvar = myarr[1] + ":" + myarr[2];

// Show the resulting value
console.log(myvar);
// 'TEMP:data'
44 голосов
/ 23 декабря 2010

Вам не нужно разделять. Вы можете использовать indexOf и substr:

str = str.substr(str.indexOf(':')+1);

Но эквивалент explode будет split.

32 голосов
/ 26 сентября 2013
String.prototype.explode = function (separator, limit)
{
    const array = this.split(separator);
    if (limit !== undefined && array.length >= limit)
    {
        array.push(array.splice(limit - 1).join(separator));
    }
    return array;
};

Должен точно соответствовать PHP-функции explode ().

'a'.explode('.', 2); // ['a']
'a.b'.explode('.', 2); // ['a', 'b']
'a.b.c'.explode('.', 2); // ['a', 'b.c']
27 голосов
/ 23 декабря 2010

выглядит так, как вы хотите split

7 голосов
/ 23 декабря 2010

Попробуйте это:

arr = str.split (":");
5 голосов
/ 13 января 2011

создать объект:

// create a data object to store the information below.
    var data   = new Object();
// this could be a suffix of a url string. 
    var string = "?id=5&first=John&last=Doe";
// this will now loop through the string and pull out key value pairs seperated 
// by the & character as a combined string, in addition it passes up the ? mark
    var pairs = string.substring(string.indexOf('?')+1).split('&');
    for(var key in pairs)
    {
        var value = pairs[key].split("=");
        data[value[0]] = value[1];
    }

// creates this object 
    var data = {"id":"5", "first":"John", "last":"Doe"};

// you can then access the data like this
    data.id    = "5";
    data.first = "John";
    data.last  = "Doe";
4 голосов
/ 23 декабря 2010

Использовать String.split

"0000000020C90037:TEMP:data".split(':')

4 голосов
/ 23 декабря 2010

Если вам нравится php, взгляните на php.JS - JavaScript взорвется

Или в обычной функциональности JavaScript: `

var vInputString = "0000000020C90037:TEMP:data";
var vArray = vInputString.split(":");
var vRes = vArray[1] + ":" + vArray[2]; `
3 голосов
/ 16 января 2014

console.log(('0000000020C90037:TEMP:data').split(":").slice(1).join(':'))

выходные данные: TEMP:data

  • .split () разбирает строку на части
  • .join () собирает массив обратнов строку
  • , если вы хотите массив без первого элемента, используйте .slice (1)
2 голосов
/ 03 мая 2013

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

var mystr = '0000000020C90037:TEMP:data';
var myarr = mystr.split(":");
var arrlen = myarr.length;
var myvar = myarr[arrlen-2] + ":" + myarr[arrlen-1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...