簡體   English   中英

將數組后面所有出現的字符串替換為 javascript

[英]Replace all occurrences of string following an array with javascript

我有一個像這樣的字符串:

const content = 'Lorem ipsum dolor {image} sit amet, consectetur adipiscing elit {image}. Sed quis varius erat. Pellentesque in {image} magna feugiat mi imperdiet suscipit. Pellentesque eget lobortis justo. {image} Sed id pretium purus.'

還有一個像這樣的數組:

const images = ['https://images.website.com/61ea8cc09233173e0ff27b1b.jpg','https://images.website.com/61ea8cc39233173e0ff27b24.jpg','https://images.website.com/61ea8cc59233173e0ff27b2d.jpg','https://images.website.com/61ea8cc89233173e0ff27b36.jpg']

我想用 images[0] 替換第一個 {image},用 images[1] 替換第二個 {image},用 images[2] 替換第三個 {image}...

此腳本可用於此目的

 let s="{image} b {image} c {image}" let images=['image1','image2','image3'] images.forEach(img=>{s=s.replace('{image}',img)}) console.log(s)

這真的取決於你想做什么。 最簡單的方法如下。 但是,對於更強大的方法,例如,如果您不只是替換 '{image}' 或者如果數組可能沒有與字符串中的替換相同數量的參數等,您可能想要使用正則表達式。

 var content = 'Lorem ipsum dolor {image} sit amet, consectetur adipiscing elit {image}. Sed quis varius erat. Pellentesque in {image} magna feugiat mi imperdiet suscipit. Pellentesque eget lobortis justo. {image} Sed id pretium purus.'; const images = ['https://images.website.com/61ea8cc09233173e0ff27b1b.jpg','https://images.website.com/61ea8cc39233173e0ff27b24.jpg','https://images.website.com/61ea8cc59233173e0ff27b2d.jpg','https://images.website.com/61ea8cc89233173e0ff27b36.jpg']; for (var i = 0, l = images.length; i < l; i++) { content = content.replace('{image}', images[i]); } console.log(content);

您可以執行以下操作:

 const content = 'Lorem ipsum dolor {image} sit amet, consectetur adipiscing elit {image}. Sed quis varius erat. Pellentesque in {image} magna feugiat mi imperdiet suscipit. Pellentesque eget lobortis justo. {image} Sed id pretium purus.' const images = ['https://images.website.com/61ea8cc09233173e0ff27b1b.jpg','https://images.website.com/61ea8cc39233173e0ff27b24.jpg','https://images.website.com/61ea8cc59233173e0ff27b2d.jpg','https://images.website.com/61ea8cc89233173e0ff27b36.jpg'] let result = content images.forEach((img) => { result = result.replace('{image}', img) }) console.log(result);

使用模板文字:

const content = `Lorem ipsum dolor ${image[0]} sit amet, consectetur adipiscing elit ${image[1]}. Sed quis varius erat. Pellentesque in ${image[2]} magna feugiat mi imperdiet suscipit. Pellentesque eget lobortis justo. ${image[3]} Sed id pretium purus.`

請注意在字符串周圍使用反引號而不是引號。

function replaceWithImages(str, images) {
  const images_ = [...images].reverse();
  return str.replace(/{image}/g, () => images_.pop() || '');
}

這樣做的好處是你只需要創建一個新的str副本

暫無
暫無

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

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