操纵一个字符串并将其作为html返回

时间:2017-11-30 02:57:37

标签: javascript html regex reactjs

我有一个来自CMS的字符串:

MSRP基础价格†

字符串不可变,我需要替换†包裹的上标标签,如下所示:

<sup>†</sup>

但是,使用str.replace方法,我使用:

var superLabel = str.replace(new RegExp('†'), '<sup>†</sup>');

superLabel返回此信息:MSRP Base Price&lt; SUP&GT;†&LT; SUP&GT;

2 个答案:

答案 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>';