我有一箇舊腳本,用於通過向body標籤添加類名來更改網站的字體大小,其部分功能是在將其更改爲其中一個之前移除現有類設置。問題是存在一個eval
行,它會從body標籤上的其他類中刪除「large」,「medium」或「small」等任何實例,這些實例充當頁面的唯一標識符,這會干擾其他腳本使用。如何在下面的代碼中更改eval行,以便它只匹配整個單詞?JavaScript eval()語法
/* Override CSS with global font size selected by user */
function changeFontSize(size) {
var oldClasses, currentClass;
/*sets key words to be eliminated*/
oldClasses = eval("/large|medium|small/ig");
/*gets the current class names*/
currentClass = document.body.className;
/*eliminates key words from string, then adds new size*/
document.body.className = currentClass.replace(oldClasses, "") + " " + size;
}
...爲什麼會出現在這裏'在eval'第一名?!? 'oldClasses =/large | medium | small/ig'是相同的,除非不是邪惡。如果你需要自定義字符串,'oldClasses = new RegExp(['large','medium','small']。join('|'),'ig')'。 (這裏沒有回答這個問題,只是表示懷疑。) – Amadan
_「我怎樣才能改變下面的行,以便它只搜索整個單詞?」_問題不清楚。 「搜索」在哪裏發生? – guest271314
我對eval不太瞭解,所以我不能告訴你爲什麼這是必要的。我從上下文中假定它的目的是列出腳本在分配給body標籤的類中查找的術語。 – Tom