javascript - 如何迭代多行字符串值的拆分结果数组以重新格式化某些行/换行符?

标签 javascript arrays string split multiline

我有一串数据,中间有换行符。 例如:

"Product Name \n Product Color \n Product Quantity \n Product Location \n Product Size \n Product Power" 

字符串中的元素数量可以是无限的。

我需要将 \n 替换为 >>>>\n 但仅当行号大于 3 而不是最后一行时。在最后一行我需要它说 (end)

我已经尝试过 map,我可以拆分和替换,但是我在遍历数组以确定要修改的行时遇到了问题。 以及在修改或不修改所有行后将它们加入备份。

输入是:

"Retract-A-Banner\n**Template:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n"

预期输出:

"Retract-A-Banner\n**Template:\nFull Color >>>> \nImprint Information: >>>> \nCL: 488 Special Ops Wing >>>> \n353 SOW Integrated Resilience Optimization Network(end)\n"

最佳答案

\n 拆分并根据条件重新创建您的字符串:

  1. 如果这是最后一个那么添加(end)
  2. 如果行大于3,添加>>>>\n
  3. 否则一个简单的\n就可以了

编辑:

添加检查最后一个字符串是否为 \n,并从数组中删除该值。

const str = "Retract-A-Banner\n**Template:\nFull Color\nImprint Information:\nCL: 488 Special Ops Wing\n353 SOW Integrated Resilience Optimization Network\n";

const splitted = str.split('\n');
let output = '';

if (splitted[splitted.length - 1] === '')
  splitted.length--;
  
for (let i = 0; i < splitted.length; i++) {
  if (i + 1 === splitted.length) {
    output += splitted[i] + ' (end)';
  } else if (i >= 2) {
    output += splitted[i] + ' >>>> \n';
  } else {
    output += splitted[i] + '\n';
  }
}

console.log(output);

关于javascript - 如何迭代多行字符串值的拆分结果数组以重新格式化某些行/换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70746889/

相关文章:

javascript - Vue.js typescript 界面不工作

java - 在 JAVA 中从基 X 转换为基 Y 与 PHP 中的相同函数返回不同的字符

java - 解析并捕获字符串末尾的数字

c - 在函数 C 中返回 "char *tab[]"

javascript - localStorage 删除一个值并保留现有值

arrays - 检查变量是否以 bash 中的另一个变量开头

java - 如果字符串是否在池中创建,如何确认(或获取字符串的对象表示)?

javascript - 将 GrapesJS 与 React JS 集成

javascript - 将接口(interface)属性声明为 bool 值或为多页表单返回 bool 值的函数

javascript - 这个 JavaScript foo(); 中发生了什么?功能?