我已经google了,并且浏览了这个真的,非常奇怪但已知错误了一段时间了,但我无法弄清楚这段代码的错误,以及为什么它会给我错误&#34 ;意外的令牌ILLEGAL"。
失败的一行就是这一行:
var temp = existingTags.replace(tagToRemove, '');
代码:
onDelete: function (item) {
var existingTags = $('.lblTags').html();
var tagToRemove = item.name + ',';
var temp = existingTags.replace(tagToRemove, '');
$('.lblTags').text(temp);
}
数据:
existingTags = "Oddity,Strange,Weird,Ohyeah,"
tagToRemove = "Weird,"
答案 0 :(得分:4)
在该行的末尾有一个不可见(“零宽度空格”)字符,使该行无效。请注意,如果您将光标放在分号后面并向右然后向左,则光标似乎根本不会移动。
当您复制代码时,尤其是某些网站,可能会发生这种情况。
您可以删除有问题的字符,或者如果您复制并粘贴下面看起来相同但已经清理过的代码,它将消除错误。
onDelete: function (item) {
var existingTags = $('.lblTags').html();
var tagToRemove = item.name + ',';
var temp = existingTags.replace(tagToRemove, ''); // zero-width space removed here
$('.lblTags').text(temp);
}
根据Andreas的评论,如果您粘贴代码{j},则jsfiddle将以红色显示有问题的字符。
答案 1 :(得分:0)
更改
var tagToRemove = item.name + ',';
到
var tagToRemove = new RegExp(item.name.toLowerCase() + ",", "gi");
答案 2 :(得分:-1)
我尝试添加有问题的代码,它对我有用。
你需要做的就是删除&#34 ;;"之后的最后一个字符。这个字符是不可见的
var temp = existingTags.replace(tagToRemove,'');
检查以下代码:
var existingTags = "Oddity,Strange,Weird,Ohyeah,";
var tagToRemove = "Weird,";
var temp = existingTags.replace(tagToRemove, '');
document.getElementById("result").innerHTML = temp;
console.log(temp);

<div id="result"></div>
&#13;
答案 3 :(得分:-2)
您的问题不是代码本身,而是代码的保存方式。 尝试使用notepadd ++或其他内容来更改编码,并查看代码组成的字符。
摆脱奇怪的字符会导致你的javascript环境引发非法令牌错误。