如果正则表达式模式匹配,字符串中的粗体字
Bold word in string if regex pattern matches
想法:
如果字符串中的单词是用大括号键入的,我想突出显示它们(比如"Lorem{Ipsum}Sit Dolor"(。如果它们匹配,则应使用font-weight:bold。
迄今为止的方法:
var final = [];
var regExp = /([^{]*?)(?='})/;
var string = document.getElementById("myParagraph").innerHTML;
wordArray = string.split(/'s+/);
for (var i = 0; i < wordArray.length; i++) {
if (regExp.exec(wordArray[i])) {
final.push(wordArray[i]);
}
}
console.log(final);
<body>
<p id="myParagraph">This is a test string with a {bold} text. Lets {see} if this works</p>
</body>
现在我得到了我需要用CSS突出显示的单词,并将用jQuery.CSS((进行jQuery.each,但我现在不确定如何应用样式并自动"刷新"DOM。
使用String.prototype.replace并直接写入元素的innerHTML,可以大大简化代码。
Regex也有点不同,因为我认为你不想在输出中保留大括号,所以它们不保存在捕获组中。
在样式方面,您可以用一个特定的类将元素包装在一个跨度中,但我只是使用了原生的strong
标记,因为它在语义上是正确的,并且默认情况下具有您想要的样式。
function bolderize(el) {
el.innerHTML = el.innerHTML.replace(/{([^}]+)}/gm, '<strong>$1</strong>')
}
bolderize(document.getElementById('myParagraph'))
<body>
<p id="myParagraph">This is a test string with a {bold} text. Lets {see} if this works lol</p>
</body>
要使用CSS应用粗体字体,请在CSS样式表文件中定义这样的CSS类。
.BeBold { font-weight: bold; }
然后,使用JavaScript将由大括号框起来的已识别字符串部分替换为包含span标记的字符串,该标记也使用新的CSS类。
所以这个。。。
{lpsum}
对此的更改。。。。
<span class="BeBold">{lpsum}</span>
如果您愿意,也可以在替换过程中删除大括号。
相关文章:
- 如何使用手柄呈现斜体/粗体文本
- javascript:查找/替换regexp帮助-粗体、斜体和特定字符
- 粗体的ExecCommand函数的定义
- Jquery删除除粗体之外的所有内容
- TinyMCE 将另一个事件添加到粗体和斜体按钮
- 为什么谷歌应用程序脚本抛出'引用错误:“;粗体“;未定义'使用.setBold()时
- CKEDITOR-将粗体应用于包含数字的编号列表
- Bootstrap/AngularJs:如何为导航类的活动选择设置粗体属性
- jQuery自动完成下拉列表中的粗体搜索文本字符
- 如何使用javascript在文本编辑器中设置粗体文本和/或突出显示红色
- 如何通过电子邮件发送带有粗体文本的 Google 表单数据
- 将 CodeMirror 子字符串设置为粗体而不更改模式
- 向 html 字符串添加粗体标记
- 使用角度翻译在翻译的字符串中添加<强>/粗体文本
- 内联 jquery 字符串 - 为某些单词添加粗体字体
- 将字符串中的特定单词更改为粗体
- 如果正则表达式模式匹配,字符串中的粗体字
- 如何使所选子字符串作为链接和粗体
- 如何在包含粗体和斜体标签时获取字符串的第一个文本节点
- 字符串比较,如果匹配则用粗体文本替换