2013-05-08 2 views
27

Ich habe eine Zeichenfolge, die ich auf einen bestimmten Index teilen und dann beide Teile, getrennt durch ein Komma, zurückgeben muss. Zum Beispiel:Split-String in zwei bei gegebenem Index und Rückgabe beider Teile

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

Also muss ich in der Lage sein, um die Zeichenfolge an einem bestimmten Index zu spalten und dann wieder beide Hälften des Strings. Eingebaute Methoden scheinen den Split auszuführen, geben aber nur einen Teil des Split zurück.

string.slice gibt nur extrahierten Teil der Zeichenfolge zurück. string.split können Sie nur auf den Charakter nicht Index String.substring aufzuspalten tut, was ich brauche, aber nur gibt die Teil String.substr sehr ähnlich - nach wie vor gibt nur die Teil

+2

zeigen Ihnen die erwartete Ausgabe? –

+2

'split()' gibt ein Array von Strings zurück, wie Sie zweifellos wissen. Bitte fügen Sie den Code ein, der für Sie nicht zu funktionieren scheint. –

+0

Ist das nicht nur tausend Separator? –

Antwort

52

Versuchen Sie, diese

function splitValue(value, index) { 
 
    return value.substring(0, index) + "," + value.substring(index); 
 
} 
 

 
console.log(splitValue("3123124", 2));

1

So etwas wie das? ...

function stringConverter(varString, varCommaPosition) 
{ 
    var stringArray = varString.split(""); 
    var outputString = ''; 
    for(var i=0;i<stringArray.length;i++) 
    { 
    if(i == varCommaPosition) 
     { 
     outputString = outputString + ','; 
     } 

    outputString = outputString + stringArray[i]; 
    } 

    return outputString; 
} 
20

ES6 1-liner

// :: splitAt = number => Array<any>|string => Array<Array<any>|string> 
 
const splitAt = index => x => [x.slice(0, index), x.slice(index)] 
 

 
console.log(
 
    splitAt(1)('foo'), // ["f", "oo"] 
 
    splitAt(2)([1, 2, 3, 4]) // [[1, 2], [3, 4]] 
 
) 
 

1

Sie können es auch so machen.
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); 
Verwandte Themen