标签: eval

为什么eval()在Javascript中给出未定义的值?

我正在使用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)

请帮助我做出改变.提前致谢.

javascript eval

1
推荐指数
1
解决办法
4631
查看次数

输出数组作为PHP eval-able代码

基本上我想要一些功能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)

php arrays eval

1
推荐指数
1
解决办法
1105
查看次数

python:如何确定字符串是否包含元组?

我需要一个干净的方法来确定字符串是否实际上是一个元组,如下所示:

'(123,456)' - >是的

'你好世界' - >错

我可以想到两种方法:

  1. 一个正则表达式
  2. 调用eval并捕获/忽略SyntaxError

我不喜欢第二种选择.我对第一个选项很好,但只是想知道是否有更好的方法来做到这一点.

谢谢.

python string tuples eval

1
推荐指数
1
解决办法
362
查看次数

生成字符串并在运行时将其作为程序执行

这是一个难以理解的问题,我不确定它的正确用语是什么(如果有的话).我很好奇什么语言允许你在程序执行期间"构建"一个字符串,然后作为程序的一部分执行它.我所知道的唯一一种允许你这样做的语言是Snobol.

然而,阅读Tcl的维基百科条目,听起来它也可以做到这一点?

我一直认为这是一个很好的功能,即使它可能没有太多使用.谢谢.

PS:会用Snobol,Spitbol标记这个,但没有创建新标签的声誉.

programming-languages eval metaprogramming multistage snobol

1
推荐指数
1
解决办法
215
查看次数

在函数中使用Eval("Name")

我正在使用.NET webforms.我有一个网格视图,可以在标记中使用Eval("名称"),它工作正常.但是,我需要对它进行一些计算,所以在后面的代码中我创建了一个名为FormatName(String name)的方法.我可以在标记中使用它,当我传递一个字符串时它可以工作但不是当我尝试使用Eval("名称"时).

<%# Eval("Name") %>工程
< %# FormatName("jim") %>有效

我正在寻找这样的东西:
<%# FormatName(Eval("Name"))>%

这不起作用,但我认为有一些接近.

c# gridview webforms eval

1
推荐指数
1
解决办法
2854
查看次数

语法错误(当似乎没有!)

我花了一个小时左右试图弄清楚这一个错误..它看起来对我来说,但我到目前为止还没有专家.所以我想我会问专家!我一直收到这个错误:

解析错误:语法错误,意外''(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)

php mysql syntax foreach eval

1
推荐指数
1
解决办法
154
查看次数

为什么Perl eval会出错

如果我写这段代码:

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)

它会发现错误,为什么?谁能帮我?

perl eval

1
推荐指数
1
解决办法
104
查看次数

高阶函数导致chrome扩展中的评估不安全

我正在制作一个非常简单的chrome扩展程序,以随机更改c​​hromebook上的壁纸。但是我在加载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)

javascript eval google-chrome-extension

1
推荐指数
1
解决办法
1044
查看次数

'eval :: String - >(a - > b)'字符串到函数转换器

有在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类型有一种*,但一种功能->有一种* -> * -> *.假设我们可以*从词法范围中提供前两种,那么应该是可能的,对吧?

parsing haskell functional-programming eval

1
推荐指数
1
解决办法
114
查看次数

使用eval运行管道命令

我有以下命令行来检查文件系统的可用空间:

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无法运行管道命令.真的吗?是否有任何解决方法或替代方法来运行此代码?

bash eval escaping pipe quoting

1
推荐指数
1
解决办法
2963
查看次数