在命名空间内使用jQuery的filter()时导致这些JavaScript错误的原因是什么?

时间:2012-11-28 20:46:35

标签: javascript jquery regex filter

  

可能重复:
  SyntaxError: Unexpected token ILLEGAL

有人可以告诉我为什么会出现这些错误以及如何解决这些错误吗?

/*global $:false */

Blah.BlahBlah = {
  findLinks : function () {
    "use strict";

    $('a').filter(function () {
      return !(/https?:\/\/[^\/]*xyz.*/i.test($(this).attr('href')));
    }).text("***");
  ​}
};

在JSHint中抛出这些错误:

  • 第10行:}意外''。
  • 第11行:};预期'}'匹配第3行的'{',而不是';'。
  • 第11行:};缺少分号。

Chrome控制台显示此错误:

  • 未捕获的SyntaxError:意外的标记ILLEGAL

但是,在封装的匿名函数中使用此代码(JSFiddle)不会引发错误:

/*global $:false */

(function() {

  "use strict";

  $('a').filter(function() {
    return !(/https?:\/\/[^\/]*xyz.*/i.test($(this).attr('href')));
  }).text("***");

}());

1 个答案:

答案 0 :(得分:1)

我将你的第一个片段粘贴到jsbin中,我在倒数第二个大括号}之前看到一个奇怪的字符......可能是一个通常不可打印的字符?