var list = [{
name: "koala",
owner: "mark"
},
{
name: "opossum",
owner: "lala"
},
{
name: "dog",
owner: "lucia"
}
];
var str = document.body.innerHTML;
var toChange = /fox|penguin|cat/ig;
for (let listItem of list) {
str = str.replace(toChange, listItem.name);
str.id = 'span';
document.body.innerHTML = str;
console.log(listItem.name);
}
span {
text-decoration: underline;
color: red;
}
html lang-html prettyprint-override">The fox jumps over the bush, the penguin walks, the cat drinks.
我基本上想做的是用“列表”中的动物替换超文本标记语言中的动物。此外,我希望这些最后更改的动物名称也能改变颜色。我设法用考拉替换了动物,但我不知道为什么它只替换了考拉,好像我console.log(listItem.name)我得到了所有三种动物。for循环有问题吗?
你只是替换整个HTML内容没有附加,所以你需要创建一个新的跨度元素,并在正文中
添加该元素,你也可以使用innetText代替内部Html
,因为内Html
也会给内部元素以及文本。
var list = [{
name: "koala",
owner: "mark"
},
{
name: "opossum",
owner: "lala"
},
{
name: "dog",
owner: "lucia"
}
];
var htmlText = document.body.innerText;
var toChange = /fox|penguin|cat/ig;
var spanComponent='';
for (let listItem of list) {
var str = htmlText.replace(toChange, listItem.name);
console.log(str)
var span = document.createElement('span')
span.innerText = str;
document.body.appendChild(span);
}
The fox jumps over the bush, the penguin walks, the cat drinks.
将代码的相应部分替换为:
var toChange = [/fox/ig, /penguin/ig, /cat/ig];
for (let listItem of list) {
str = str.replace(toChange[list.indexOf(listItem)], listItem.name);
结果:
The koala jumps over the bush, the opossum walks, the dog drinks.
我想这是你想做的。正如异端猴子所指出的,像那样只使用一个正则表达式是行不通的。不能在字符串上设置id。另外,id必须是唯一的,所以不能给不同的元素设置相同的id。
var list = [{
name: "koala",
owner: "mark"
},
{
name: "opossum",
owner: "lala"
},
{
name: "dog",
owner: "lucia"
}
];
var str = document.body.innerHTML;
var toChange = [/fox/ig, /penguin/ig, /cat/ig];
for (let i = 0; i < list.length; i++) {
str = str.replace(toChange[i], `<span>${list[i].name}</span>`);
document.body.innerHTML = str;
console.log(list[i].name);
}
span {
text-decoration: underline;
color: red;
}
The fox jumps over the bush, the penguin walks, the cat drinks.
问题内容: 我正在使用一个喜欢: 我使用的是哪里。这行代码对我不起作用。我想知道自己在做什么错? 问题答案: 尽管看起来可能存在一些语法问题,但是代码看起来或多或少还可以。这是一个工作示例:
问题内容: 我想替换字符串语句中的单词,例如: 用实际名词/动词替换“ $ $”(含)中的字符的正则表达式是什么? 问题答案: 您不需要为此使用正则表达式。我会做 仅在需要时使用正则表达式。通常比较慢。
问题内容: 我正在从用户那里获得一个物理位置地址,并试图安排它来创建一个URL,该URL以后将用于从Google Geocode API获取JSON响应。 最终的URL字符串结果应与此类似,但不能有空格: http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View
我需要在java中找到一种类似的巧妙方法来替换多个字符串,就像在php中使用str_replace一样。 我想要一个字符串,然后返回一个字符串,其中数字1到10被替换为这些数字的单词。
示例:[可爱]微笑这是测试[笑哭] 目的:将这个字符串中所有中括号表示的文字替换为emoji
我想替换字符串中的一些单词。我有可行的解决方案,但我认为这不是最好的。你能帮我做些更有效的事情吗 代码是avaiable在这里:https://codepen.io/yasAFE/pen/BYOVme