2013-05-08 66 views
27

我有一個字符串,我需要在給定索引上分割,然後返回兩個部分,用逗號分隔。例如:在給定索引處分割兩個字符串並返回兩個部分

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

所以我需要能夠分裂在任何給定索引字符串,然後返回一個字符串的兩部分。內置的方法似乎執行拆分,但只返回拆分的一部分。

string.slice只返回提取部分字符串。 string.split只允許你人品不是指數分裂 string.substring做什麼,我需要,但只返回字符串 非常使用String.substr相似 - 仍然只返回字符串

+2

,你能否告訴預期的輸出? – 2013-05-08 13:19:05

+2

'split()'返回一個字符串數組,你毫無疑問知道。請包含似乎不適合您的代碼。 – 2013-05-08 13:19:06

+0

這不就是千分之一分隔符嗎? – 2013-05-08 13:19:32

回答

52

試試這個

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

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

1

像這樣的事情?......

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班輪

// :: 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

你也可以這樣做。
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);