作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
function replaceKeys(inputString, keys){
for (var i = 0; i < keys.length; i++) {
var t = keys[i];
if (t) inputString= inputString.replace(new RegExp(t, 'gi'), '<strong>' + t + '</strong>');
}
return s;
}
使用上面的 javascript 方法,我尝试根据“键”或字符串部分的列表将给定字符串中的所有文本加粗。
示例输入:
键= [“人”,“海峡”]inputString="大力士"
预期输出:
strong man
不幸的是,输出也替换了强标签的“str”部分。意味着输出变为
<strong>strong 男人。
是否有正则表达式或其他一些方法,以便我可以忽略字符串中的 html 标记,这样它就不会出现这种奇怪的行为?
最佳答案
您可以通过定义一个占位符而不是使用 <strong>
来做到这一点直接标记:
function replaceKeys(inputString, keys){
var placeholder = '!!';
var s = inputString.replace(new RegExp(/strong>/gi),placeholder);
for (var i = 0; i < keys.length; i++) {
var t = keys[i];
if (t) s = s.replace(new RegExp(t, 'gi'), '<' + placeholder + t + '</' + placeholder );
}
return s.replace(new RegExp(placeholder,'g'),'strong>');
}
replaceKeys("strong man",["man", "str"]);
关于javascript - 在javascript中,如何在不覆盖以前的粗体字符串的情况下用粗体文本替换多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47086151/
下面是我用来制作 1px 文本描边轮廓的代码。但是如何使轮廓变粗呢?如果我只是用“5px”替换所有“1px”,结果看起来很疯狂。 HTML Hello! CSS .element { color:
我是一名优秀的程序员,十分优秀!