String.replace() 函数解析 XML 字符串,以便可以在 HTML 中显示

发布于 2024-10-01 18:36:31 字数 372 浏览 3 评论 0原文

我有一个 XML 字符串,需要在 HTML 中显示。我知道这里需要做的第一件事是转换所有 '<'和“>”进入 '& LT;'和 '& >' (忽略 & 符号后面的空格)。这就是我正在做的替换 '<' -

regExp = new RegExp("/</g");
xmlString = xmlString.replace(regExp, '& lt;');

xmlString 不会改变。

另外,trace(regExp.test("<")); 打印false

这里有什么问题吗?

I have a XML string which needs to be displayed within HTML. I understand the first thing needed to be done here is to convert all '<' and '>' into '& lt;' and '& gt;' (ignore the space after & sign). This is what I am doing to replace '<' -

regExp = new RegExp("/</g");
xmlString = xmlString.replace(regExp, '& lt;');

xmlString does not change.

Also, trace(regExp.test("<")); prints false.

What is wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逆蝶 2024-10-08 18:36:31

替换返回一个新字符串,它不会修改旧字符串。因此,如果你想覆盖旧的,你必须执行以下操作:

xmlString = xmlString.replace(regExp, '<');

或者如果你不想覆盖旧的,只需将结果存储在一个新变量中。

var newString = xmlString.replace(regExp, '<');

replace returns a new string, it doesn't modify the old one. So if you want to overwrite the old you have to do the following:

xmlString = xmlString.replace(regExp, '<');

Or if you don't want to overwrite the old one, just store the result in a new variable.

var newString = xmlString.replace(regExp, '<');
失退 2024-10-08 18:36:31

问题在于创建 RegExp 对象的方式。

由于您使用的是 RegExp 构造函数,因此请勿包含 / 字符:

regExp = new RegExp("<", "g");

或使用 / 作为快捷方式:

regExp = /</g;

有关更多详细信息,请参阅此页面:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/RegExp.html

The issue is the way you create your RegExp object.

Because your using the RegExp constructor, don't include the / characters:

regExp = new RegExp("<", "g");

or use / as a shortcut:

regExp = /</g;

See this page for more details: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/RegExp.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文