Javascript 如果正则表达式模式匹配,字符串中的粗体字

Javascript 如果正则表达式模式匹配,字符串中的粗体字,javascript,html,css,regex,dom,Javascript,Html,Css,Regex,Dom,创意: 如果字符串中的单词是用大括号键入的(比如“Lorem{Ipsum}Sit Dolor”),我想突出显示这些单词。如果它们匹配,则应应用字体大小:粗体 目前的做法: var final=[]; var regExp=/([^{]*?)(?=\})/; var string=document.getElementById(“My段落”).innerHTML; wordArray=string.split(/\s+/); for(var i=0;i这是一个带有粗体文本的测试字符串。让我们看看

创意:

如果字符串中的单词是用大括号键入的(比如“Lorem{Ipsum}Sit Dolor”),我想突出显示这些单词。如果它们匹配,则应应用字体大小:粗体

目前的做法:

var final=[];
var regExp=/([^{]*?)(?=\})/;
var string=document.getElementById(“My段落”).innerHTML;
wordArray=string.split(/\s+/);
for(var i=0;i

这是一个带有{bold}文本的测试字符串。让我们{看看}这是否有效


使用并直接写入元素的innerHTML,可以大大简化代码

正则表达式也有点不同,因为我假设您不想在输出中保留大括号,所以它们不保留在捕获组中

在样式方面,您可以使用特定的类将元素包装在一个span中,但我只使用了本机
strong
标记,因为它在语义上是正确的,并且具有您默认使用的样式

函数粗体化(el){
el.innerHTML=el.innerHTML.replace(/{([^}]+)}/gm,$1)
}
bolderize(document.getElementById('my段落'))

这是一个带有{bold}文本的测试字符串。让{看看}这是否有效lol


要在CSS中应用粗体字体,请在CSS样式表文件中定义这样的CSS类

.BeBold { font-weight: bold; }
然后,使用JavaScript将由大括号框定的已标识字符串部分替换为包含span标记的字符串,该标记也使用新的CSS类

所以这个

{lpsum}
。。。对此的更改

<span class="BeBold">{lpsum}</span>
{lpsum}

如果您愿意,您也可以在替换过程中删除大括号。

final.push(“+wordArray[i]+”)
是的,这比使用jQuery和CSS要好,但我的问题是如何将段落作为一个整体呈现=>

这是一个带有粗体文本的测试字符串。让我们看看这是否有效

。但看起来你已经有了一个更短更好的选择;)仅供参考:
/m
修饰符在这里是多余的,可以安全删除。真的吗?它使用innerHTML获取文本内容,如果在具有不同内容的不同元素上使用,文本内容中可能会有新行。