J'ai cette chaîne:
0000000020C90037: TEMP: données
J'ai besoin de cette chaîne:
TEMP: données.
Avec PHP, je ferais ceci:
$str = '0000000020C90037:TEMP:data';
$arr = explode(':', $str);
$var = $arr[1].':'.$arr[2];
Comment puis-je efficacement explode
une chaîne en JavaScript la façon dont il fonctionne en PHP?
javascript
php
string
Doug Molineux
la source
la source
split(delimiter,limit)
le paramètre de limite de ne fonctionne PAS de la même manière queexplode($delimiter,$string,$limit)
le paramètre de limite de. Exemple:explode('.','1.2.3.4',3) === array('1','2','3.4')
- tout en Javascript, vous obtenez:'1.2.3.4'.split('.',3) === ['1', '2', '3']
. Quelqu'un sait comment répliquer facilement la méthode PHP?Vous n'avez pas besoin de vous séparer. Vous pouvez utiliser
indexOf
etsubstr
:Mais l'équivalent de
explode
seraitsplit
.la source
Devrait imiter exactement la fonction explode () de PHP.
la source
On dirait que tu veux diviser
la source
Essaye ça:
la source
créer un objet:
la source
Utilisez String.split
"0000000020C90037:TEMP:data".split(':')
la source
Si vous aimez php, jetez un œil à php.JS - JavaScript explose
Ou dans la fonctionnalité JavaScript normale: `
la source
emptyArray = { 0: '' }
? : - /explode('foo','bar'); // 'bar'
C'est la raison pour laquelle je suis arrivé ici et pour mes besoins, un script copier-coller que j'ai l'intention d'utiliser avec des limites est absolument parfait. Je n'ai pas besoin d'être mis à l'écart pour créer le mien. Pourquoi réinventer la roue après tout, baiserconsole.log(('0000000020C90037:TEMP:data').split(":").slice(1).join(':'))
les sorties:
TEMP:data
la source
Sans intention de critiquer John Hartsock , juste au cas où le nombre de délimiteurs pourrait varier pour toute personne utilisant le code donné, je suggère formellement de l'utiliser à la place ...
la source
la source
Juste un petit ajout à la réponse de psycho brm (sa version ne fonctionne pas dans IE <= 8). Ce code est compatible avec tous les navigateurs:
la source
Je sais donc que ce message est assez ancien, mais je me suis dit que je pourrais aussi bien ajouter une fonction qui m'a aidé au fil des ans. Pourquoi ne pas simplement refaire la fonction d'explosion en utilisant le fractionnement comme mentionné ci-dessus? Et bien voilà:
Cette fonction fonctionne bien si vous essayez d'obtenir des valeurs entre deux valeurs. Par exemple:
Si vous vouliez obtenir les informations entre les deux "balises" de [valeurs], vous pouvez utiliser la fonction comme suit.
Mais disons que vous n'avez pas ces "balises" pratiques comme l'exemple ci-dessus. Peu importe.
Vous voulez le voir en action? Cliquez ici .
la source
la variable éclatée renverra un tableau et vous pouvez accéder aux éléments du tableau en y accédant true exploded [nth] où nth est l'indice de la valeur que vous souhaitez obtenir
la source
~
(cela provoque une erreur de syntaxe). Et l' épissure n'est pas à cette fin, c'est pour obtenir / retirer des éléments ou les ajouter à un tableau.essayez comme ça,
Et vous pouvez utiliser deux parties de la chaîne comme,
ans [0] et ans [1]
la source
J'ai utilisé slice, split and join Vous pouvez simplement écrire une ligne de code
la source
Si vous souhaitez définir votre propre fonction, essayez ceci:
Tiré de: http://locutus.io/php/strings/explode/
la source
Le code de Felix Kling est dynamique (contrairement à la réponse acceptée) mais la chaîne d'exemple initiale est un terrible point de départ. Donc, pour démontrer visuellement sa réponse (il répond juste à la question) pour ceux qui veulent de la qualité et de la vitesse:
la source