我正在使用JavaScript编码.我创建了一个名称OQ_0和值的文本区域"0".当我eval()在JavaScript中使用该字段的方法时,它给出了值undefined.以下是JavaScript代码的一部分
var tempOpenQtyStr = "document.InitiateReturnsForm.OQ" + "_" + 0;
var tempOpenxQtyStr = eval(tempOpenQtyStr).value;
alert('Manuals =' + document.InitiateReturnsForm.OQ_0.value);
alert('eval(tempOpenxQtyStr ) =' + eval(tempOpenxQtyStr));
alert('eval(tempOpenxQtyStr).value =' + eval(tempOpenxQtyStr).value);
Run Code Online (Sandbox Code Playgroud)
输出:
Manuals = 0
eval(tempOpenxQtyStr ) = 0 --- Here it is suppose to show "[object]"
eval(tempOpenxQtyStr).value = undefined.
Run Code Online (Sandbox Code Playgroud)
请帮助我做出改变.提前致谢.
基本上我想要一些功能array_as_php,其中基本上是相反的eval:
$array = array( '1' => 'b', '2' => 'c' );
echo array_as_php($array);
Run Code Online (Sandbox Code Playgroud)
将打印以下eval字符串:
array( '1' => 'b', '2' => 'c' )
Run Code Online (Sandbox Code Playgroud) 我需要一个干净的方法来确定字符串是否实际上是一个元组,如下所示:
'(123,456)' - >是的
'你好世界' - >错
我可以想到两种方法:
我不喜欢第二种选择.我对第一个选项很好,但只是想知道是否有更好的方法来做到这一点.
谢谢.
这是一个难以理解的问题,我不确定它的正确用语是什么(如果有的话).我很好奇什么语言允许你在程序执行期间"构建"一个字符串,然后作为程序的一部分执行它.我所知道的唯一一种允许你这样做的语言是Snobol.
然而,阅读Tcl的维基百科条目,听起来它也可以做到这一点?
我一直认为这是一个很好的功能,即使它可能没有太多使用.谢谢.
PS:会用Snobol,Spitbol标记这个,但没有创建新标签的声誉.
programming-languages eval metaprogramming multistage snobol
我正在使用.NET webforms.我有一个网格视图,可以在标记中使用Eval("名称"),它工作正常.但是,我需要对它进行一些计算,所以在后面的代码中我创建了一个名为FormatName(String name)的方法.我可以在标记中使用它,当我传递一个字符串时它可以工作但不是当我尝试使用Eval("名称"时).
<%# Eval("Name") %>工程
< %# FormatName("jim") %>有效
我正在寻找这样的东西:
<%# FormatName(Eval("Name"))>%
这不起作用,但我认为有一些接近.
我花了一个小时左右试图弄清楚这一个错误..它看起来对我来说,但我到目前为止还没有专家.所以我想我会问专家!我一直收到这个错误:
解析错误:语法错误,意外''(T_ENCAPSED_AND_WHITESPACE),期望标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)在......第29行
从这行代码:
eval("$var_value = $_REQUEST['{$value}']");
Run Code Online (Sandbox Code Playgroud)
这是围绕它的代码..
function save_edits($var_name, $var_value)
{
eval("{$var_name} = sql_safe({$var_value});");
eval("mysql_query(\"UPDATE settings set {$var_name}='{$var_value}' where variable='{$var_name}'\") or die(mysql_error());");
}
foreach ($_REQUEST as $key => $value)
{
eval("$var_value = $_REQUEST['{$value}']");
save_edits($value, $var_value);
}
Run Code Online (Sandbox Code Playgroud) 如果我写这段代码:
for $i (1..3) {
$j = $i;
print $j;
}
Run Code Online (Sandbox Code Playgroud)
有用.
这段代码将起作用:
$code = "
for $i (1..3) {
#### $j = $i;
print $j;
}
eval $code
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试这样写:
$code = "
for $i (1..3) {
$j = $i;
print $j;
}
eval $code
Run Code Online (Sandbox Code Playgroud)
它会发现错误,为什么?谁能帮我?
我正在制作一个非常简单的chrome扩展程序,以随机更改chromebook上的壁纸。但是我在加载Java脚本控制台时遇到了一个奇怪的错误:
拒绝将字符串评估为JavaScript,因为在以下内容安全策略指令中不允许使用'unsafe-eval'脚本源:“ script-src'self'blob:文件系统:chrome-extension-resource:”。@ background.js:27
这是我的manifest.json:
{
"manifest_version": 2,
"name": "Abyss Wallpapers for Chrome OS",
"description": "Sets the Chrome OS wallpaper to a random wallpaper from the
Wallpaper Abyss (wall.alphacoders.com), once a minute",
"version": "1.0",
"background":
{
"scripts":["background.js"]
},
"permissions": [
"wallpaper",
"https://wall.alphacoders.com/api2.0/",
"background"
]
}
Run Code Online (Sandbox Code Playgroud)
这是我的background.js:
var baseUrl = "https://wall.alphacoders.com/api2.0/get.php?"
var apiKey = "c160c64ef4c79e61e325ddf944183dfe"
var params = "auth=" + apiKey + "&method=random"
var interval = 30000;
var xhr = new XMLHttpRequest();
xhr.open("GET", baseUrl + params, true);
xhr.onreadystatechange = function()
{ …Run Code Online (Sandbox Code Playgroud) 有在Haskell标准库中的函数(或一些其他模块/包),可以采取一个String字面如"+","head"等等,然后把这些成其相应的Haskell功能,诸如+,head?
Hoogle没有产生任何立即有用的答案.这样一个函数的虚拟示例将如下所示:
eval :: String -> (a -> b)
eval "+" = (+)
eval "head" = head
Run Code Online (Sandbox Code Playgroud)
ps假设这里的"对应"可以表示不同上下文中的不同事物(+可能不再被定义为非Numbers 类型的数字加法)但是回答这个问题是必要的,让我们假设字符串的"对应"函数是类型检查的函数,可以在将字符串转换为此函数的环境中进行求值,也就是使用词法作用域来查找此函数的值.
如果没有这样的功能,是否有深层原因(例如来自lambda演算,类型理论等)为什么,并且不可能在任何严格的静态类型语言中实现?如果在Haskell中不可能,对于这样的问题,实际上建议的做法是什么?想象一下,实现一个线性代数库,其中字符串或者eval到创建值vect2的函数(例如,是一个创建二维函数的函数),或者(二进制,为了简单)操作,从它们映射到其他类型(我们可以选择提供类型)这些注释,例如eval "innerProduct" :: Double,eval "matrixProduct" :: Matrix等)
更一般地说,一种String类型有一种*,但一种功能->有一种* -> * -> *.假设我们可以*从词法范围中提供前两种,那么应该是可能的,对吧?
我有以下命令行来检查文件系统的可用空间:
fs_used=`df -h /u01 | sed '1d' | sed '1d' | awk '{print $4}' | cut -d'%' -f1`
Run Code Online (Sandbox Code Playgroud)
它工作正常.它返回文件系统上已用空间的百分比(不带%符号).
现在我需要使它变量并使用eval命令运行它.我尝试了以下但它不起作用(退出df:无效选项 - 'd')
df_cmnd="df -h $fs1 | sed '1d' | sed '1d' | awk '{print $4}' | cut -d'%' -f1"
fs_used=eval $df_cmnd
Run Code Online (Sandbox Code Playgroud)
我想,问题是eval无法运行管道命令.真的吗?是否有任何解决方法或替代方法来运行此代码?