javascript - 用 Regex 替换空格而不替换空的 HTML 标签

标签 javascript html css

我想像这样替换空格:

<span>5</span>SPACE<image href="mtgsymbol.png" />

但是当我这样做时使用:

card_cost=card_cost.replace(/\s/g,"");

它把我的 CSS 弄乱了,对象相互堆叠,就像它们的位置被更改为绝对位置一样。

如何在不破坏我的 CSS 或文档流的情况下替换空格?

示例代码:

Javascript:

card_cost=document.getElementById('card_cost').value;

if(card_cost)
{
card_cost=card_cost.replace(/\d+/g,"<span class='card_costnum'>$&</span>");
*breaks styling*card_cost=card_cost.replace(/\s/g,"");*breaks styling*
}

document.getElementById('output').innerHTML+="<div class='card'>"+"<span class='card_cost'>"+card_cost+"</span>";

CSS:

.card_name,.card_image,.card_cost,.card_type,.card_subtype,.card_rarity,.card_rules,.card_flavor,.card_strength,.card_num,.card_lower,.card_costnum
{
position:relative;
z-index:1;
}

.card_cost
{
display:inline-block;
float:right;
clear:right;
}

.card_costnum
{
position:relative;
display:inline-block;
text-align:center;
vertical-align:middle;
background-image:url("numsymbol_small.png");
background-repeat:no-repeat;
width:12px;
height:12px;
margin:1px;
top:-4px;
}

最佳答案

card_cost = card_cost.replace(/\d+/g, "<span class='card_costnum'>$&</span>");
card_cost = card_cost.replace(/\s/g, "");

你正在把它变成 <spanclass='card_costnum'> ,这是无效的,并且会破坏其余的 HTML。只需反转替换即可。

card_cost = card_cost.replace(/\s/g, "");
card_cost = card_cost.replace(/\d+/g, "<span class='card_costnum'>$&</span>");

关于javascript - 用 Regex 替换空格而不替换空的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269997/

相关文章:

html - 在 CSS 中嵌套子选择器

javascript - 带有 node-sass-middleware 的 Express 应用程序只提供一次正确的样式表

css - Box-Shadow 在 IE 10 中不起作用

html - 使用 css 在水平中心对齐标签和文本框

javascript - 添加但未删除 beforeunload 之前的 ReactJS 事件监听器

javascript - 如何使用本地 Objective-C 方法从本地 HTML5 文件中的 javascript 函数调用本地 Objective-C 方法,反之亦然?

javascript - 在 jquery 中通过文本选择选项

html - 为什么我的标题元素文本没有按预期居中?

javascript - 税务功能问题(If/Else 语句)

javascript - 在 winapi 中运行 javascript