【问题标题】:Javascript: SyntaxError: identifier starts immediately after numeric literalJavascript:SyntaxError:标识符在数字文字之后立即开始
【发布时间】:2014-05-12 10:39:29
【问题描述】:

我需要修复那个(不是我的)代码:

var addr = escape('<a   href="')%3B%2509%2509addr&#32;+=&#32;escape(utf8_encode('mailto%253A'))%3B%2509%2509addr&#32;+=&#32;encodedEmail%3B%2509%2509addr&#32;+=&#32;escape('.html">');

它似乎在旧版本的 javascript 中工作,但它现在坏了...设置了 encodedEmail 变量,%3B 是分号,%2509 是 %09 = [制表符]

我在 %3B 处收到错误提示 SyntaxError: identifier 在数字文字之后立即开始。

怎么了?

在我修复该代码后,我将提供免费服务 - 再次打击垃圾邮件。 请帮助我,提前谢谢你,Gregor

【问题讨论】:

标签: javascript escaping url-encoding


【解决方案1】:

我认为这在任何版本的 JavaScript 中都行不通。你有一个字符串结尾:

var addr = escape('<a   href="')%3B%2509%2509addr&#32;+=&#32;escape(utf8_encode('mailto%253A'))%3B%2509%2509addr&#32;+=&#32;encodedEmail%3B%2509%2509addr&#32;+=&#32;escape('.html">');
// String ends here ----------^

...然后) 关闭escape 的括号。后面的% 会被解释为余数运算符,那么3B 就是语法错误。

解决办法是把你想要的字符放在字符串里面,在字符串里面。我暂时猜不出它们是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多