为了账号安全,请及时绑定邮箱和手机立即绑定

Chrome Uncaught语法错误:意外令牌ILLEGAL

Chrome Uncaught语法错误:意外令牌ILLEGAL

慕容森 2019-07-26 16:57:09
Chrome Uncaught语法错误:意外令牌ILLEGAL Chrome尝试在页面上加载脚本文件时收到主题错误。它说这是在javascript文件的最后一行。我似乎无法找到任何错误。firefox中没有错误,脚本按预期工作。只需使用表单验证// 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\n";         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;}
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

在该源的末尾有某种伪造的特征。尝试删除最后一行并将其添加回来。

我无法确切地知道那里有什么,但......

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

这些角色的臭名昭着的来源就像jsfiddle这样的网站。我并不是说它们有任何问题 - 它只是某种东西的副作用,也许是使用内容可编辑的输入小部件。

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


查看完整回答
反对 回复 2019-07-26
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

粘贴从jsfiddle复制的代码后,我在Chrome中遇到同样的错误。

如果从jsfiddle中的面板中选择所有代码并将其粘贴到自由文本编辑器Notepad ++中,您应该能够将问题字符看作问号“?”。在代码的最后。删除此问号,然后从Notepad ++复制并粘贴代码,问题就会消失。


查看完整回答
反对 回复 2019-07-26
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

当多行字符串包含新的line(\n)字符时,我遇到了同样的错误。将所有行合并为一个(从而删除所有新行字符)并将其发送到用于解决的浏览器。但代码非常不方便。

通常无法理解为什么这是Chrome中的问题,直到我发现一条声明说Chrome中当前版本的JavaScript引擎不支持多行字符串,这些字符串用单引号括起来并且\n在其中包含新的line()字符。为了使其工作,多行字符串需要用双引号括起来。将我的代码更改为此,解决了此问题。

我将尝试查找对标准或Chrome文档的引用,以证明这一点。在此之前,请尝试此解决方案,看看是否适合您。


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 454 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信