草庐IT

PREG_REPLACE_EVAL

全部标签

javascript - electron 的 remote.getGlobal() 在 window.location.replace() 之后返回 "undefined"

我一直在摆弄Electron的远程模块。在我的主进程中,我创建了这个变量:global.storage={};我的渲染器进程是用一个名为startup.html的文件初始化的。win.loadURL('file://'+__dirname+'/startup.html')在那里,我包含了一个包含以下函数的javascript文件:functionenterMain(value){remote.getGlobal('storage').exmpl=value;window.location.replace('./general.html');}我传递的值是“hello”,当调用...co

javascript - 使用 document.body.innerHTML.replace 有多安全?

正在运行类似:document.body.innerHTML=document.body.innerHTML.replace('旧值','新值')危险吗?我担心某些浏览器可能会搞砸整个页面,并且由于这是将放置在我无法控制的站点上的JS代码,谁知道哪些浏览器可能会访问我有点担心.我的目标只是在整个body中寻找一个字符串的出现并替换它。 最佳答案 绝对有潜在危险-特别是如果您的HTML代码很复杂,或者如果它是其他人的HTML代码(即它是CMS或您创建可重用的javascript)。此外,它还会销毁您在页面元素上设置的所有事件监听器。用

javascript - 缓存 eval() 结果

在Javascript中,是否可以缓存eval的结果??例如,如果我可以的话就太好了:varstr="somecode...";varcode=eval(str);//lateron...code.reExecute(); 最佳答案 您可以使str成为函数的主体并使用NewFunction而不是eval。varfn=newFunction([param1,param2,...],str);并通过调用fn(p1,p2,...)重用它或者使用eval,让str变成类似varfn=eval("(function(a){alert(a);}

javascript - 为什么我们在此表达式中使用 _ str.replace(/[\W_]/g, '' ).toLowerCase();我们也可以使用/[\W]/g 但为什么我们要使用下划线呢?

这是一个javascript问题。我在freecodecamp上解决回文问题。让我在这里写下完整的代码:functionpalindrome(str){varnormalizedStr=str.replace(/[\W_]/g,'').toLowerCase();varreverseStr=normalizedStr.split('').reverse().join('');returnnormalizedStr===reverseStr;} 最佳答案 \W元字符用于查找非单词字符。单词字符是a-z、A-Z、0-9中的一个字符,包括

eval 反序列化后 Javascript 原型(prototype)未定义

尝试反序列化JSON数据并更新每个对象的原型(prototype)并继承一个通用函数。但是,以下脚本会抛出错误“people[0].getFullName不是一个函数”。反序列化对象的原型(prototype)在分配后似乎未定义。varjson='[{"firstName":"John","lastName":"Smith"},{"firstName":"Nancy","lastName":"Jones"}]';varpeople;eval('people='+json);functionPerson(){}Person.prototype.getFullName=function()

javascript - 在 JavaScript 中使用 `return false` 时处理 `eval`

我正在处理这样一种情况,我需要将jQuery事件绑定(bind)到页面以处理通过JSF生成的UI更新。唉,JSF糟透了,它会在所有内容上粘贴onclick事件,这抢占了我的任何jQuery工作。感谢SO上的优秀人员,我找到了解决方案:mixingmyjQueryclickeventswithexistingobject'sonclickattribute逻辑是:在页面加载时,获取所有onclick属性并将它们存储在一个变量中。绑定(bind)我的jQuery事件在我自己的jQuery事件之后,我可以eval原始的onclick:eval(onclickValueVariable)这在我

javascript - 使用 eval() 设置全局变量

我使用eval设置全局变量的代码无法正常工作。就好像根本没有调用赋值,但没有发生脚本错误。$(function(){setTimeout(function(){eval('varx=1;');alert(x);},0);});Clicktosee'x'当页面加载时,警报显示我所期望的;它确认x=1。但在那之后,我单击div并收到x未定义的javascript错误。如何使eval正确添加此变量?背景:上面的代码是我正在处理的项目中的一个最小重现示例,在该项目中我们必须在AJAX响应期间执行javascript代码。eval大多数时候都能正常工作,但这会导致问题。

javascript - 使用 replace() 替换过多的内容

当t后面没有使用此行的字母p时,我将t替换为g代码:"tpto".replace(/(t)[^p]/g,"g");然而,结果是tpg,而我期待的是tpgo。因为我不知道哪个字母会跟在t之后,我需要一些动态的东西,但我不知道该怎么做,有什么想法吗? 最佳答案 您可以使用negativelookaheadassertion:"tpto".replace(/t(?!p)/g,"g");//=>"tpgo"/t(?!p)/:t仅当它不是(负)后跟(先行)p时才会匹配. 关于javascript-

javascript - jQuery + 扩展 Object.prototype = "c.replace is not a function"

我在我的开源项目中使用jQuery1.5,我自己的Javascript代码中也出现了以下行:/***Object.isEmpty()**@returns{Boolean}*/Object.prototype.isEmpty=function(){/***@deprecatedSinceJavascript1.8.5*@seehttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object*/if(this.__count__!==undefined){returnthis.__count__===0?

javascript - 多个嵌套对象的 eval() 替代方法

我正在尝试为我正在使用的HTML应用程序创建一个通用的i18n解决方案。我正在寻找使用eval()调用深度嵌套的Javascript对象的替代方法:假设以下HTML示例:及其配套的Javascript(使用jQuery):vari18n;i18n={html:{pageOne:{pageTitle:'LoremIpsum!'}}};$(document).ready(function(){$('[data-18n]').each(function(){varq;q=eval('i18n.'+$(this).attr('data-i18n'));if(q){$(this).text(q)