我需要在Javascript中对字符串进行反转义,但有时我的字符串已经反转义了,有时则没有:
// String 1
<?xml version="1.0" encoding="UTF-8" ?>
// String 2
<?xml version="1.0" encoding="UTF-8"?>
我使用以下方法:
function htmlDecode(input)
{
var doc = new DOMParser().parseFromString(input, "text/html");
return doc.documentElement.textContent;
}
但问题是,当我对字符串2进行"解码"时,得到的结果是?xml version="1.0" encoding="UTF-8"?
感谢您的帮助。
2条答案
按热度按时间oprakyz71#
你可以对字符串做一个正则表达式检查,看看是否存在字符的编码版本,如果存在,就进行解码,否则,就返回你交给函数的内容。
更简单(更好):
这个方法不需要正则表达式,并且总是返回未转义的字符串,而不会“过度取消转义”它们:
h43kikqp2#
如果你的函数没有DOMParser函数的访问权限(例如在一个网络工作者中),你可以使用这个函数。这可能不适合长字符串,因为它每次都搜索整个字符串。
如果你在长字符串中使用这个函数,你可能需要使用indexOf的第二个参数来传递你想从其开始搜索字符串的索引,当然,这可能需要重写函数,而不是像这样做。