2016-01-16 64 views
2

我已經搜索了一下,並瀏覽了一段時間真的很奇怪但已知的錯誤,但我無法弄清楚這段代碼有什麼問題,並且爲什麼它給我錯誤「意外的令牌非法」。Jquery:.replace部分字符串返回「意外的令牌非法」

失敗的線是這個:

var temp = existingTags.replace(tagToRemove, '');​ 

CODE:

onDelete: function (item) { 
    var existingTags = $('.lblTags').html(); 
    var tagToRemove = item.name + ','; 
    var temp = existingTags.replace(tagToRemove, '');​ 
    $('.lblTags').text(temp); 
} 

DATA:

existingTags = "Oddity,Strange,Weird,Ohyeah," 
tagToRemove = "Weird," 

回答

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的評論,會的jsfiddle如果您粘貼代碼,shown here顯示紅色的違規性質。

+1

這個[fiddle]中顯示的紅點(https:// jsfiddle。淨/ 7r1v6bc2 /) – Andreas

+0

@Andreas不錯 - 我不知道的jsfiddle做到了(肯定我花了幾個小時追逐這些中的一個倒在過去的jsfiddle所以我想從那時起,它已經推出)。希望你不介意我借你的小提琴在我的編輯。 – CupawnTae

+0

絕對沒有問題; D – Andreas

-2

你的問題是不是代碼本身,而是如何代碼已保存。 嘗試使用notepad ++或其他方法更改編碼並查看構成代碼的字符。

擺脫奇怪的字符,因爲它們會導致您的JavaScript環境提高非法令牌錯誤。

+0

這是一條評論,但不是答案...... – Andreas

+0

這不是一個答案....使用評論塊這樣的評論 – charlietfl

+0

這是一個意外的保存。我同時編輯它 – Morv

-1

我嘗試添加有問題的代碼,它適用於我。

所有你需要做的是刪除「;」後的最後一個字符,這種炭不visable

變種臨時= 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>