Javascript 相当于转换字符实体
Javascript equivalent for converting character entities
我有以下 html 代码段,其中 javascript 嵌入了单行代码。
<div class="social_icon twitter" onclick="shareSocialWall('twitter','New Comment on xxxx - WTF, if the dancers don&acirc;&#128;&#153;t come in until 4ish','https:/xxxx')"></div>
如您所见,有一个 onclick
事件正在触发 shareSocialWall
。这里重要的是文本 dancers don&acirc;&#128;&#153;t
。
当文本被传递给函数 shareSocialWall
时,会发生以下情况:
location='https://twitter.com/intent/tweet?text='+text+'&url='+encodeURIComponent(url);
问题是文本中断了执行此 tweet
的调用。有没有办法在 javascript 中对这段文本进行编码,这样它就不会破坏文本。
此文本的路径是:
- perl => encodes entities on comment text as xml node
- xslt => passes xml text to javascript function (uses disable output encoding which does nothing for this apparently)
- js => handles the text inside the shareSocialWall Function
您的文本似乎已经被损坏,可能是双重编码不正确。
您可以使用正则表达式删除所有 HTML 个实体:
var str = 'New Comment on xxxx - WTF, if the dancers don&acirc;&#128;&#153;t come in until 4ish';
console.log(str.replace(/&[^\s]*;/g, ''));
请注意,这是非常激进的,如果您的文本编码确实很糟糕,例如缺少 ;
,可能会删除比您希望的更多的文本。
我有以下 html 代码段,其中 javascript 嵌入了单行代码。
<div class="social_icon twitter" onclick="shareSocialWall('twitter','New Comment on xxxx - WTF, if the dancers don&acirc;&#128;&#153;t come in until 4ish','https:/xxxx')"></div>
如您所见,有一个 onclick
事件正在触发 shareSocialWall
。这里重要的是文本 dancers don&acirc;&#128;&#153;t
。
当文本被传递给函数 shareSocialWall
时,会发生以下情况:
location='https://twitter.com/intent/tweet?text='+text+'&url='+encodeURIComponent(url);
问题是文本中断了执行此 tweet
的调用。有没有办法在 javascript 中对这段文本进行编码,这样它就不会破坏文本。
此文本的路径是:
- perl => encodes entities on comment text as xml node
- xslt => passes xml text to javascript function (uses disable output encoding which does nothing for this apparently)
- js => handles the text inside the shareSocialWall Function
您的文本似乎已经被损坏,可能是双重编码不正确。
您可以使用正则表达式删除所有 HTML 个实体:
var str = 'New Comment on xxxx - WTF, if the dancers don&acirc;&#128;&#153;t come in until 4ish';
console.log(str.replace(/&[^\s]*;/g, ''));
请注意,这是非常激进的,如果您的文本编码确实很糟糕,例如缺少 ;
,可能会删除比您希望的更多的文本。