列表字符串格式化
function formatNumberedList(inputStr) {
// 增强正则:匹配数字开头结构,同时处理空内容条目
const itemRegex = /(\d+)\.\s*([^]*?)(?=\s*\d+\.|$)/g;
const items = [];
let match;
while ((match = itemRegex.exec(inputStr)) !== null) {
const number = match[1];
let content = match[2]
.replace(/\.+$/, "") // 移除末尾冗余点
.trim();
// 保留空内容条目
items.push(`${number}. ${content || "[空内容]"}`);
}
// 当未匹配到有效结构时返回原字符串
return items.length > 0 ? items.join("\n") : inputStr;
}
// 使用示例
const input = "1.xxx. 2. eeeee. 3. oooooo. 10. multi digits example. 4.ppppp";
console.log(formatNumberedList(input));
/* 输出:
1. xxx
2. eeeee
3. oooooo
10. multi digits example
4. ppppp
*/