Chrome浏览器未捕获的语法错误:令牌意外无效

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;

}​

回答:

该资源末尾有某种伪造的字符。尝试删除最后一行并将其添加回去。

我无法弄清楚那里到底是什么…

_编辑_我认为这是一个零宽度的空间,Unicode200B。似乎很奇怪,我当然不能肯定这不是Stackoverflow工件,但是当我将包括最后一行在内的最后一个函数复制/粘贴到Chrome控制台时,就会收到错误消息。

此类字符的臭名昭著的来源是jsfiddle这样的网站。我并不是说它们有什么问题-

这只是某些事情的副作用,也许是使用内容可编辑的输入小部件。

如果您怀疑遇到了这种情况,并且您使用的是MacOS或Linux/Unix,则od命令行工具可以(尽管相当难看)向您显示源代码文件字符中的数字值。某些IDE和编辑器也可以显示“有趣”字符。请注意,此类字符并不总是有问题。例如,在字符串常量中嵌入Unicode字符是完全可以的(无论如何,使用最合理的编程语言)。当语言解析器在不期望字符时遇到字符时,就会开始出现问题。

以上是 Chrome浏览器未捕获的语法错误:令牌意外无效 的全部内容, 来源链接: utcz.com/qa/423103.html

回到顶部