JavaScript正则表达式:将\b开头的文本替换为HTML加粗标签
问题
现有代码:
const obj = {text: "The\\bNew stylish \\biPhone"}
(注:原代码中的\b若作为字面量标记需转义为\\b,否则会被JS解析为退格符,导致原字符串内容异常)
需要将对象文本中所有以\b开头的单个单词替换为包含该单词的HTML<b>标签,最终转换结果为:
"The <b>New</b> stylish <b>iPhone</b>"
解决方案
使用正则表达式配合String.replace()方法即可实现需求:
const obj = {text: "The\\bNew stylish \\biPhone"}; // 全局匹配 \b 后跟的单词,捕获单词部分并替换为带标签的形式 const processedText = obj.text.replace(/\\b(\w+)/g, '<b>$1</b>'); console.log(processedText);
说明
- 正则表达式
/\\b(\w+)/g:\\b:匹配字面量的\b(正则中\b本身是单词边界,所以要转义成\\b来匹配实际的\b字符)(\w+):捕获一个或多个由字母、数字、下划线组成的单词g:开启全局匹配,替换所有符合条件的内容
replace()里的$1指代正则捕获到的单词部分,将其包裹在<b>标签中完成替换
内容的提问来源于stack exchange,提问作者Ahmed Shahin
相关产品推荐
相关产品推荐

