unicode chars给出" unterminated string literal"在js

时间:2016-05-06 09:09:29

标签: javascript jquery angularjs json unicode

当我的HTML将一些奇怪的字符视为空格时,会生成此错误。



<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title></title>
</head>
<body>
<p>Some
    Text</p>
</body>
</html>
&#13;
&#13;
&#13;

请注意,SomeText之间有一个字符,但此处未显示。我需要将它传递给函数toJson(),但它返回一个错误unterminated string literal

当我使用简单的文本而不是这样时,一切正常:

Some<space>Text效果很好。

我已经尝试了搜索相同内容时找到的所有str_replace函数 -

1) var re = /(?![\x00-\x7F]|[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3})./g;
   params.body_html = html.replace(re, '');
   angular.toJson(params); // gives error


2) params.body_html.replace(/\uFFFD/g, '');
   angular.toJson(params); // gives error

我不知道这是什么角色(可能是unicode)。当我将其复制到emacs文件时,它被视为

注意:编辑此问题时,您会将此字符视为红点,并点击上面的html edit the snippet

关于如何使这项工作的任何提示/想法?

1 个答案:

答案 0 :(得分:0)

使用了这个:

params.body_html = params.body_html.replace(/\u2028/g, '');
angular.toJson(params); //works fine.

感谢@Gothdo提供角色链接。

但问题是它只会在html只有这个特定的unicode字符时才会被替换。是否有任何函数可以替换或修剪所有unicode字符?