js特定字符串怎么替换数据?

有这样类型的字符串和数据 '端口号为s%-s%',数据为[200, 3000]替换成端口号为200-3000,取值为s%,数据为[50]替换成取值为50

如上 s%的个数是未知的,数据长度和个数是一致的。
请问怎么替换?谢谢。

阅读 1.3k
2 个回答

正则匹配,然后下标向后移动即可:

const replace = (str, data) => {
  let index = 0;

  return str.replace(/s%/g, () => {
    return data[index++];
  });
};

使用:

replace('端口号为s%-s%', [50, 100]); // 端口号为50-100
function replaceStr(template, data) {
  let result = template;
  let dataIndex = 0;
  
  while (result.includes('s%')) {
    result = result.replace('s%', data[dataIndex]);
    dataIndex++;
  }
  
  return result;
}

const str1 = '端口号为s%-s%';
const data1 = [200, 3000];
console.log(replaceStr(str1, data1)); // 输出:端口号为200-3000

const str2 = '取值为s%';
const data2 = [50];
console.log(replaceStr(str2, data2)); // 输出:取值为50
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题