Chrome 未捕获的语法错误:意外的令牌非法 [英] Chrome Uncaught Syntax Error: Unexpected Token ILLEGAL

查看:34
本文介绍了Chrome 未捕获的语法错误:意外的令牌非法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当 Chrome 尝试加载页面上的脚本文件时收到主题错误.它说它在 javascript 文件的最后一行.我似乎找不到任何问题.firefox 中没有错误,脚本按预期工作.仅使用表单验证

Receiving the subject error when Chrome tries to load the script file on the page. It says it's at the last line of the javascript file. I can't seem to find anything wrong with it. No errors in firefox, and the script works as expected. Just using form validation

// JavaScript Document
$(function() {
  $('#wm-form').submit(function() {
    var errors = false;
    var errorMsg = "";
    $('.required').each(function() {
      if(!validField($(this))) {
        errorMsg += $(this).attr('name').capitalize() + " cannot be blank
";
        errors = true;
      }
    });
    var emailAddress = $('#email');
    if(isValid(emailAddress) && !(/^(([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5}){1,25})+)*$/.test(emailAddress.val()))) {
      errorMsg += "Not a valid email address. Please enter in a correctly formatted email address";
      errors = true;
    }
    if(errors) {
      alert(errorMsg);
      return false;
    }
  });

  $('.form-focus').click(function() {
    $(document).scrollTop(0);
    $('#first_name').focus();
    return false;
  });
});

function validField(element) {
  if(!isValid(element.val()) || (element.attr('placeholder') && element.attr('placeholder') == element.val()) || 
    (element.attr('type') == 'radio' && !checkedRadio(element))) {
    return false;
  }
  else {
    return true;
  }
}

function isValid(ele) {
  if(ele == null || ele == '') {
    return false;
  }
  else {
    return true;
  }
}

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
};

function checkedRadio (element) {
  var valid = false;
  $('input[name="'+ element.attr("name") +'"]:checked').each(function() {
    valid = true;
  });

  return valid;
}​

推荐答案

该来源的末尾有某种虚假字符.尝试删除最后一行并重新添加.

There's some sort of bogus character at the end of that source. Try deleting the last line and adding it back.

我无法确切地弄清楚那里有什么,但......

I can't figure out exactly what's there, yet ...

编辑 —我认为这是一个零宽度空间,Unicode 200B.看起来很奇怪,我当然不能确定它不是 Stackoverflow 工件,但是当我将最后一个函数(包括完整的最后一行)复制/粘贴到 Chrome 控制台时,我收到了您的错误.

edit — I think it's a zero-width space, Unicode 200B. Seems pretty weird and I can't be sure of course that it's not a Stackoverflow artifact, but when I copy/paste that last function including the complete last line into the Chrome console, I get your error.

此类字符的臭名昭著的来源是像 jsfiddle 这样的网站.我并不是说他们有什么问题—这只是某种东西的副作用,也许是使用了可编辑内容的输入小部件.

A notorious source of such characters are websites like jsfiddle. I'm not saying that there's anything wrong with them — it's just a side-effect of something, maybe the use of content-editable input widgets.

如果您怀疑自己患有这种疾病,并且您使用的是 MacOS 或 Linux/Unix,od 命令行工具可以向您展示(尽管方式相当丑陋)源代码文件字符中的数值.一些 IDE 和编辑器也可以显示有趣"的字符.请注意,此类字符并不总是成为问题.例如,在字符串常量中嵌入 Unicode 字符是完全可以的(无论如何,在大多数合理的编程语言中).当语言解析器遇到不期望的字符时,问题就开始发生了.

If you suspect you've got a case of this ailment, and you're on MacOS or Linux/Unix, the od command line tool can show you (albeit in a fairly ugly way) the numeric values in the characters of the source code file. Some IDEs and editors can show "funny" characters as well. Note that such characters aren't always a problem. It's perfectly OK (in most reasonable programming languages, anyway) for there to be embedded Unicode characters in string constants, for example. The problems start happening when the language parser encounters the characters when it doesn't expect them.

这篇关于Chrome 未捕获的语法错误:意外的令牌非法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆