我有一个来自CMS的字符串:
MSRP基础价格†
字符串不可变,我需要替换†包裹的上标标签,如下所示:
<sup>†</sup>
但是,使用str.replace方法,我使用:
var superLabel = str.replace(new RegExp('†'), '<sup>†</sup>');
superLabel返回此信息:MSRP Base Price&lt; SUP&GT;†&LT; SUP&GT;
答案 0 :(得分:3)
你在问题中提到了React。 React会自动解码你的字符串以避免XSS攻击。
您需要使用dangerouslySetInnerHTML来设置您的价值。
示例:
// Does not work
const string = '<sup>†</sup>';
return <div>{string}</div>;
// Works
const string = '<sup>†</sup>';
return <div dangerouslySetInnerHTML={string} />;
但要小心,确保输入安全。
答案 1 :(得分:1)
以下是您需要的一种方法,除了React的答案会计中提到的内容,我并不熟悉。
master
这是另一个:
var fromCMSPrefix = 'MSRP Base Price'
var fromCMS = 'MSRP Base Price †';
var superLabel = '<sup>' + fromCMS.substr(fromCMSPrefix.length).trim() + '</sup>';