簡體   English   中英

在javascript中出現的前兩個逗號處拆分字符串

[英]Split a string at the first two commas occuring in javascript

讓我們考慮一個變量str定義為:

var str = "A, B, C, D, E, F"

要在逗號處拆分字符串,我會這樣做:

str = str.split(",")
console.log(str)
// => ["A", "B", "C", "D", "E", "F"]

那么,如果我必須在前兩個逗號處拆分它,我該怎么辦,以便輸出變為:

// => ["A", "B", "C, D, E, F"]

您可以使用正則表達式來匹配第一個非逗號部分,然后是第二個非逗號部分,然后是其他任何內容(字符串的其余部分):

 var str = "A, B, C, D, E, F"; const [, ...matches] = str.match(/(\\w+), (\\w+), (.+)/); console.log(matches);

您也可以使用split和負后視來實現,但並非所有地方都支持負后視(並且在極少數環境中支持可變長度后視):

 var str = "A, B, C, D, E, F"; console.log( str.split(/(?<=^[^,]+(?:,[^,]+)?), /) );

您可以拆分字符串,保留拆分分隔符並構建一個新的部分和連接部分數組。

 function split(string, limit) { var parts = string.split(/(,\\s*)/), result = [], i = 0; while (i < limit * 2) { result.push(parts[i]); i += 2; } result.push(parts.slice(limit * 2).join('')); return result; } console.log(split('A, B, C, D, E, F, G', 2));

你可以試試這個,它會返回你需要的結果

-var yourString="A, B, C, D, E, F";

-var formattedString = yourString.split(",").join("\\n");

可以通過這種方式使用splitreduce來完成:

 const str = 'A, B, C, D, E, F'; const res = str .split(', ') .reduce((strs, str) => { // get three parts of an array let [partOne, partTwo, partThree] = strs; // if the first two parts isn't fill out if (!partTwo) { return [...strs, str]; } else { // fill out the third part, // which can be 'undefined' at start. // if it is not 'undefined', // concatenate the string return partThree ? [partOne, partTwo, `${partThree}, ${str}`] : [...strs, str]; } }, []) console.log(res);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM