2017-01-23 57 views
-2

字符串我有一個字符串等如下所示:拆分用逗號和結腸

var String = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string without comma,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string,with comma,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string without comma,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string , with comma,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:String,with comma"

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx代表一個字母數字生成的ID和冒號後是與該Id.The字符串的字符串可以是一個逗號或沒有逗號的字符串。我想要的是我想分割字符串,以便得到一個ID爲ID的數組:它的對應字符串,如下所示。

["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string without comma","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string,with comma","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string without comma", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:some string , with comma","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:String,with comma"]

HOW我完成了這一

我使用的JavaScript split函數,其中i由分割逗號字符串後跟36個字符(ID)和結腸。 PS:我很抱歉,因爲我以前無法以正確的方式提問。希望這次人們能夠理解它。

+2

請添加一個有效的結果。 –

+0

*是否可以使用javascript?* **是**。你可以分享你嘗試過的嗎? – Rajesh

+0

@Rajesh我嘗試使用 「.split(/:|,/)」 ..但沒有得到它的權利 – talentedandrew

回答

4

您可以用逗號使用String#split和向前看數字和結腸癌。

var x = "123456:a,b,c,435213:r,567876:e,363464:t,y,u"; 
 
    array = x.split(/,(?=\d+:)/); 
 

 
console.log(array);

對於字母數字值

var x = "1A3456:a,b,c,43Y213:r,567W76:e,363x64:t,y,u"; 
 
    array = x.split(/,(?=[a-z0-9]+:)/i); 
 

 
console.log(array);

+0

你的答案是正確的,但如何檢測字母數字而不是數字? – talentedandrew

+0

什麼是「一個冒號後逗號最後一次出現」正則表達式,並使用最後comma.I拆分它發現使用逗號的最後一次出現「(?= [^,] * $)」,但如何在這裏使用它? – talentedandrew

+0

它不以這種方式工作。你必須看看接下來會發生什麼,而不是如果它是最後一個。 –

0

您可以使用該方法.split()。我使用「$」作爲分隔符號而不是「,」,因爲我認爲你想保留它們。

var values = "123456:a,b,c$435213:r$567876:e$363464:t,y,u".split("$"); 
 
var x = values[0]; 
 

 
console.log(values)