如何用JavaScript在JSX中重复插入特殊字符?
解决JS中HTML实体未解析的问题
你用"©".repeat(4)生成的是HTML实体字符串,JS不会自动解析这些实体,所以最终渲染出的是原始文本而非版权符号©。以下是几种可行的解决方法:
直接使用Unicode字符:
版权符号©的Unicode转义是\u00A9,直接用这个字符重复即可,无需依赖HTML实体:<div>{ "\u00A9".repeat(4) }</div>手动解析HTML实体:
创建临时DOM元素来解析实体字符串,再提取解析后的内容:function decodeHtmlEntity(str) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = str; return tempDiv.textContent; }使用方式:
<div>{ decodeHtmlEntity("©").repeat(4) }</div>框架环境下使用innerHTML(需注意安全):
如果你用React等框架,可以通过dangerouslySetInnerHTML让框架解析HTML实体(仅当内容完全可信时使用,避免XSS风险):<div dangerouslySetInnerHTML={{ __html: "©".repeat(4) }} />
内容的提问来源于stack exchange,提问作者daego
相关产品推荐
相关产品推荐

