javascript - JS 利用eval構(gòu)建replace函數(shù)無(wú)效
問(wèn)題描述
代碼含義:構(gòu)建一個(gè)簡(jiǎn)單的GADERYPOLUKI解碼器
The GADERYPOLUKI is a simple substitution cypher used in scouting to encrypt messages. The encryption is based on short, easy to remember key. The key is written as paired letters, which are in the cipher simple replacement.
example:
encode('ABCD', 'agedyropulik'); // => GBCE
代碼如下,我想用eval函數(shù)構(gòu)建出可以替換字符的函數(shù),但是貌似沒(méi)有用。
function decode(str,key) { key = key.split(’’) while (key.length>0) {let b = key.pop(), a = key.pop();eval(`str.replace(/${a}/g, '${b}')`)eval(`str.replace(/${a.toUpperCase()}/g, '${b.toUpperCase()}')`)eval(`str.replace(/${b}/g, '${a}')`)eval(`str.replace(/${b.toUpperCase()}/g, '${a.toUpperCase()}')`)console.log(a, b, str, `str.replace(/${a}/g, '${b}')`) } return str}console.log(decode('Hmdr nge brres', 'gaderypoluki'))console.log('Hmdr nge brres'.replace(/g/g, 'a'))>>> k i Hmdr nge brres str.replace(/k/g, 'i') l u Hmdr nge brres str.replace(/l/g, 'u') p o Hmdr nge brres str.replace(/p/g, 'o') r y Hmdr nge brres str.replace(/r/g, 'y') d e Hmdr nge brres str.replace(/d/g, 'e') g a Hmdr nge brres str.replace(/g/g, 'a') Hmdr nge brres Hmdr nae brres
問(wèn)題解答
回答1:replace 不會(huì)改變?cè)兄担欠祷匦麓?/p>
其實(shí)你可以用 new RegExp(a, ’g’) 就不需要 eval
相關(guān)文章:
1. javascript - 如何讓移動(dòng)端網(wǎng)頁(yè)的輸入框固定在底部?2. MySQL中無(wú)法修改字段名的疑問(wèn)3. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開收起效果4. Matlab和Python編程相似嗎,有兩種都學(xué)過(guò)的人可以說(shuō)說(shuō)嗎5. javascript - 微信小程序封裝定位問(wèn)題(封裝異步并可能多次請(qǐng)求)6. 大家好,請(qǐng)問(wèn)在python腳本中怎么用virtualenv激活指定的環(huán)境?7. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒(méi)有反應(yīng)8. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)這塊?9. mysql - 怎么讓 SELECT 1+null 等于 110. javascript - 微信小程序限制加載個(gè)數(shù)
