【问题标题】:How to make an HTML character equal to its keyboard equivalent [ed: ascii code] in javascript如何在javascript中使HTML字符等于其键盘等效[ed:ascii代码]
【发布时间】:2011-08-09 19:58:19
【问题描述】:

我正在尝试检查我们学校正在使用的 LMS (BrainHoney) 中是否存在变量。变量被美元符号包围。为了查看变量是否在使用中,我想尝试一个 if 语句来实现 alert("$Hello$" == "& #36;Hello& #36;");

如果变量没有被使用,$Hello$ 将保持为 $Hello$ 而不是被不同的文本字符串替换。

不幸的是,这会返回 false,因为它们并不相同。如果 LMS 将文本字符串保留为 $Hello$,我应该进行哪些更改以便我可以检查它?

【问题讨论】:

  • 嗯,这个问题的标题和内容有关系吗?
  • 在什么情况下可以将javascript添加到LMS?

标签: javascript html character


【解决方案1】:
alert("\044Hello\044" == "$Hello$");

使用 javascript 转义的八进制 $ 的 ascii 值。

或者:

alert("$Hello$" == "$Hello$");

这是 $ 的十六进制 ascii 值,由 html 转义。

【讨论】:

  • 第一个例子对我来说是八进制的,但不是 ascii。谢谢!
  • 你的意思是十六进制,因为它们都是 ascii。
  • 感谢您的澄清。 :)
【解决方案2】:

$ 不是 html 特殊字符,html 可能会保留 $ 并且没有编码表示,因此您可能需要为此使用 eval 函数(除非您想用所有这些字符串污染全局数组,这是一个坏主意)。

假设 $Hello$ 在 $Hello$ = 'Hi' 之类的地方实例化,并且您正在通过 html 进行解析,并且遇到一个潜在的替代品并将其放入名为 lookupStr 的 var 中,您可以执行以下操作。

if ( typeof( eval(lookupStr) ) != "undefined")
    replacement = lookupStr;
else
    eval(replacement = eval(lookupStr));

然后只需将 html 部分替换为替换变量即可。

【讨论】:

  • 在 LMS 中,有一个由数据库设置的变量,具体取决于您正在查看的课程。 $COURSE_ID$,并且 LMS 遇到该字符串“$COURSE_ID$”的任何地方,都会将其替换为真实的课程 ID。还有其他变量并不总是初始化,但我需要一种更聪明的方法来检查它们,而不是我一直在尝试的方法。如果 $variable$ 不存在,LMS 将不会替换它并将其保留为字符串 $variable$。有没有办法制作一个包含 $ == & #36 的字符串?
【解决方案3】:

如果您有理由确定替换不会以美元符号开头,那么

"$Hello$".charAt(0) == "$"

?

【讨论】:

  • 这也有效。我很高兴你们比我聪明得多!
猜你喜欢
  • 1970-01-01
  • 2014-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 2016-11-11
  • 1970-01-01
  • 2015-06-04
相关资源
最近更新 更多