it-swarm.com.de

Javascript entspricht PHP Explode ()

Ich habe eine Zeichenfolge, die so aussieht:

0000000020C90037: TEMP: Daten

Und ich muss nach dem ersten Doppelpunkt alles erfassen, damit ich TEMP: -Daten habe.

Ich arbeite nicht oft in Javascript, wenn es PHP wäre, würde ich das tun:

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

Dies ist eine direkte Konvertierung von Ihrem PHP Code:

//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'
586
John Hartsock

Sie müssen sich nicht trennen. Sie können indexOf und substr verwenden:

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

Aber das Äquivalent zu explode wäre split .

44
Felix Kling
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;
};

Sollte nachahmen, dass PHP explode () genau funktioniert.

'a'.explode('.', 2); // ['a']
'a.b'.explode('.', 2); // ['a', 'b']
'a.b.c'.explode('.', 2); // ['a', 'b.c']
33
psycho brm

Sieht aus wie Sie wollen split

27
Quentin

Versuche dies:

arr = str.split (":");
7
weltraumpirat

erstelle ein Objekt:

// 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";
5
JM Design

Verwenden Sie String.split

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

4
German Rumm

Wenn Sie PHP mögen, werfen Sie einen Blick auf php.JS - JavaScript explode

Oder in normaler JavaScript-Funktionalität: `

var vInputString = "0000000020C90037:TEMP:data";
var vArray = vInputString.split(":");
var vRes = vArray[1] + ":" + vArray[2]; `
4
sv88erik

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

ausgänge: TEMP:data

  • .split () zerlegt einen String in Teile
  • .join () setzt das Array wieder zu einer Zeichenfolge zusammen
  • wenn Sie das Array ohne das erste Element verwenden möchten, verwenden Sie .slice (1).
3
exebook

Ohne die Absicht zu kritisieren John Hartsock , nur für den Fall, dass die Anzahl der Trennzeichen für jemanden, der den angegebenen Code verwendet, unterschiedlich sein sollte, würde ich formell vorschlagen, dies stattdessen zu verwenden ...

var mystr = '0000000020C90037:TEMP:data';
var myarr = mystr.split(":");
var arrlen = myarr.length;
var myvar = myarr[arrlen-2] + ":" + myarr[arrlen-1];
2
dylan maxey
var str = '0000000020C90037:TEMP:data';    // str = "0000000020C90037:TEMP:data"
str = str.replace(/^[^:]+:/, "");          // str = "TEMP:data"
1
Ruben Kazumov

Nur eine kleine Ergänzung zu psycho brm ´s Antwort (seine Version funktioniert nicht in IE <= 8). Dieser Code ist browserübergreifend kompatibel:

function explode (s, separator, limit)
{
    var arr = s.split(separator);
    if (limit) {
        arr.Push(arr.splice(limit-1, (arr.length-(limit-1))).join(separator));
    }
    return arr;
}
1
Efi Nuhr

Ich weiß also, dass dieser Beitrag ziemlich alt ist, aber ich dachte mir, ich könnte auch eine Funktion hinzufügen, die mir im Laufe der Jahre geholfen hat. Warum nicht einfach die Explosionsfunktion mit split wie oben beschrieben neu erstellen? Nun, hier ist es:

function explode(str,begin,end)
{
   t=str.split(begin);
   t=t[1].split(end);
   return t[0];
}

Diese Funktion funktioniert gut, wenn Sie versuchen, die Werte zwischen zwei Werten abzurufen. Zum Beispiel:

data='[value]insertdataherethatyouwanttoget[/value]';

Wenn Sie daran interessiert sind, die Informationen zwischen den beiden "Tags" [values] abzurufen, können Sie die folgende Funktion verwenden.

out=explode(data,'[value]','[/value]');
//Variable out would display the string: insertdataherethatyouwanttoget

Nehmen wir jedoch an, Sie haben diese praktischen "Tags" nicht wie im obigen Beispiel angezeigt. Ganz gleich.

out=explode(data,'insert','wanttoget');
//Now out would display the string: dataherethatyou

Wanna sehen es in Aktion? Klicken Sie auf hier .

0
Ramity
var str = "helloword~this~is~me";
var exploded = str.splice(~);

die explodierte Variable gibt ein Array zurück und Sie können auf Elemente des Arrays zugreifen, indem Sie auf die explodierte Variable [nth] zugreifen, wobei nth der Index des Werts ist, den Sie erhalten möchten

Wenn Sie Ihre eigene Funktion definieren möchten, versuchen Sie Folgendes:

function explode (delimiter, string, limit) {
  if (arguments.length < 2 ||
    typeof delimiter === 'undefined' ||
    typeof string === '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 {
      0: ''
    }
  }
  if (delimiter === true) {
    delimiter = '1'
  }

  // Here we go...
  delimiter += ''
  string += ''

  var s = string.split(delimiter)

  if (typeof limit === 'undefined') return s

  // Support for limit
  if (limit === 0) limit = 1

  // Positive limit
  if (limit > 0) {
    if (limit >= s.length) {
      return s
    }
    return s
      .slice(0, limit - 1)
      .concat([s.slice(limit - 1)
        .join(delimiter)
      ])
  }

  // Negative limit
  if (-limit >= s.length) {
    return []
  }

  s.splice(s.length + limit)
  return s
}

Entnommen aus: http://locutus.io/php/strings/explode/

0
harish sharma

versuche es so,

ans = str.split (":");

Und Sie können zwei Teile der Zeichenfolge wie verwenden,

ans [0] und ans [1]

0

Ich habe Slice, Split und Join verwendet. Sie können nur eine Codezeile schreiben

      let arrys = (str.split(":").slice(1)).join(":");
0
Pharis Kahama