[英]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");
可以通過這種方式使用split
和reduce
來完成:
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.