ontleed een string in javascript door een gemeenschappelijk scheidingsteken

In JavaScript heb ik een reeks van de vorm "/ john/smith". Ik zou graag de array "voornaam" krijgen: "john", "achternaam": "smith".

Heeft JS een eenvoudige functie om deze string te ontleden op basis van een seperator? Ik heb niets gezien en Google heeft niets geretourneerd, behalve het doen van wat regex.

2

10 antwoord

var str="/john/smith"
var ar=str.split("/");

now ar[1] will contain firstname

& ar[2] will contain lastname

3
toegevoegd

You can use the .split() method for this. See the MDN for a reference on .split(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split

Het is heel eenvoudig te gebruiken.

var namestring = "/John/Smith";
var pieces = namestring.split("/");

stukjes [1] bevat "John" en stukjes [2] bevat "Smith". Merk op dat die indexarrays 1 en 2 zijn, niet 0 en 1. stukken [0] bevatten "" omdat split() de strings teruggeeft gescheiden door het meegeleverde scheidingsteken. Er is een lege tekenreeks vóór het eerste teken "/", dus het eerste resultaat is leeg.

2
toegevoegd

Iets zoals dit?:

var str = "/john/smith";

//empty is here because if you split by/you'll get ["", "john", "smith"]
var getObject = function(empty, first, last) {
    //You could traverse arguments, witch will have every match in an "array"
    return {
       first_name: first,
       last_name: last
    };
}

firstAndLastName = getObject.apply(null, str.split('/')); //Object {first_name: "john", last_name: "smith"}
2
toegevoegd

Iets zoals dit?:

var str = "/john/smith";

//empty is here because if you split by/you'll get ["", "john", "smith"]
var getObject = function(empty, first, last) {
    //You could traverse arguments, witch will have every match in an "array"
    return {
       first_name: first,
       last_name: last
    };
}

firstAndLastName = getObject.apply(null, str.split('/')); //Object {first_name: "john", last_name: "smith"}
2
toegevoegd

split() method will do the trick

var str="/john/smith"
var arr=str.split("/");

arr [1] geeft voorstname en arr [2] geeft de tweede naam

0
toegevoegd

split() method will do the trick

var str="/john/smith"
var arr=str.split("/");

arr [1] geeft voorstname en arr [2] geeft de tweede naam

0
toegevoegd

Een paar manieren om dit voor uw specifieke voorbeeld te doen, aangezien de meeste andere antwoorden een / aan het begin achterlaten, zullen deze het correcte resultaat weergeven:

var result = str.match(/[^/]+/g);

Of:

var result = str.split('/').slice(1);
0
toegevoegd

Een paar manieren om dit voor uw specifieke voorbeeld te doen, aangezien de meeste andere antwoorden een / aan het begin achterlaten, zullen deze het correcte resultaat weergeven:

var result = str.match(/[^/]+/g);

Of:

var result = str.split('/').slice(1);
0
toegevoegd

De eenvoudige Javascript splits methode zou moeten werken.

var myOriginalString = '/John/Smith';
var afterSplitArray = myOriginalString.split('/');
var firstName = afterSplitArray[1];//John
var lastName = afterSplitArray[2]; //Smith

De enige catch is, als je oorspronkelijke string begint met het scheidingsteken, je toegang moeten krijgen tot variabelen van index = 1, zoals in het bovenstaande voorbeeld.

0
toegevoegd

De eenvoudige Javascript splits methode zou moeten werken.

var myOriginalString = '/John/Smith';
var afterSplitArray = myOriginalString.split('/');
var firstName = afterSplitArray[1];//John
var lastName = afterSplitArray[2]; //Smith

De enige catch is, als je oorspronkelijke string begint met het scheidingsteken, je toegang moeten krijgen tot variabelen van index = 1, zoals in het bovenstaande voorbeeld.

0
toegevoegd