119 votes

divise une chaîne de caractères en deux à l'indice donné et retourne les deux parties.

J'ai une chaîne de caractères que je dois diviser sur un indice donné, puis renvoyer les deux parties, séparées par une virgule. Par exemple :

string: 8211 = 8,211
        98700 = 98,700

J'ai donc besoin de pouvoir diviser la chaîne de caractères sur n'importe quel index donné, puis de retourner les deux moitiés de la chaîne. Les méthodes intégrées semblent effectuer la division mais ne renvoient qu'une partie de la division.

string.slice ne renvoie que la partie extraite de la chaîne. string.split permet uniquement de séparer sur un caractère et non sur un index. string.substring fait ce dont j'ai besoin mais ne renvoie que la sous-chaîne. string.substr est très similaire, mais ne renvoie que la sous-chaîne.

1voto

devashish-patel Points 473

Vous pouvez aussi le faire comme ceci.
https://jsfiddle.net/Devashish2910/8hbosLj3/1/#&togetherjs=iugeGcColp

var str, result;
str = prompt("Enter Any Number");

var valueSplit = function (value, length) {
    if (length < 7) {
        var index = length - 3;
        return str.slice(0, index) + ',' + str.slice(index);
    }
    else if (length < 10 && length > 6) {
        var index1, index2;
        index1 = length - 6;
        index2 = length - 3;
        return str.slice(0,index1) + "," + str.slice(index1,index2) + "," + str.slice(index2);
    }
}

result = valueSplit(str, str.length);
alert(result);

1voto

i336_ Points 665

Si l'élégance du code est plus importante que le gain de performance des regex, alors

'1234567'.match(/^(.*)(.{3})/).slice(1).join(',')
=> "1234,567"

Il y a beaucoup de place pour modifier la regex afin d'être plus précis.

Si join() ne fonctionne pas, vous devrez peut-être utiliser la fonction map avec une fermeture, auquel point les autres réponses ici peuvent être moins d'octets et de bruit de ligne.

0voto

vcygni Points 21
function splitText(value, index) {
  if (value.length < index) {return value;} 
  return [value.substring(0, index)].concat(splitText(value.substring(index), index));
}
console.log(splitText('this is a testing peace of text',10));
// ["this is a ", "testing pe", "ace of tex", "t"] 

Pour ceux qui veulent diviser un texte en tableau en utilisant l'index.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X