Javascript:SyntaxError:标识符在数字文字后立即启动

时间:2014-05-12 10:39:29

标签: javascript escaping url-encoding

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

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 var设置,%3B是分号,%2509是%09 = [制表机]

我在%3B遇到错误,说SyntaxError:标识符在数字文字后立即启动。

有什么问题?

在我解决之后,我将提供该代码的免费服务 - 再次打击垃圾邮件的力量。 请帮助我,感谢提前,热烈地,Gregor

1 个答案:

答案 0 :(得分:0)

我不相信这会适用于任何版本的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的parens。后面的%将被解释为余数运算符,然后3B是语法错误。

解决方案是将字符串中所需的字符放在字符串中。我现在不能猜出那些是什么。