与“中的JavaScript RegExp不同的结果”;“1.7.6”;vs";V8";
目前,我发现相同的JavaScript RegExp可能会在不同的JavaScript引擎中生成不同的结果,下面是一个示例: 在Chrome V8 JS发动机中与“中的JavaScript RegExp不同的结果”;“1.7.6”;vs";V8";,javascript,regex,v8,rhino,Javascript,Regex,V8,Rhino,目前,我发现相同的JavaScript RegExp可能会在不同的JavaScript引擎中生成不同的结果,下面是一个示例: 在Chrome V8 JS发动机中 /\x3c/.test("\x3c") --> returns true /\x3c/.test(function() { return "\x3c" }) -->returns ***false*** 在rhino1.7.6中,我键入如下命令: >java -jar js.jar Rhino 1.7.
/\x3c/.test("\x3c") --> returns true
/\x3c/.test(function() { return "\x3c" }) -->returns ***false***
在rhino1.7.6中,我键入如下命令:
>java -jar js.jar
Rhino 1.7.6 2015 04 15
js> /\x3c/.test(function() { return "\x3c" })
true
js>
我测试了这两个:
/\x3c/.test("\x3c") --> returns true
/\x3c/.test(function() { return "\x3c" }) -->returns ***true***
我想知道为什么这两个引擎产生不同的结果。我认为它们必须符合一些标准
如果我错了,请纠正我。此外,如果这是一个特殊的场合,请告诉我在这些特殊场合我是否可以告诉JS engine一些配置。给定值
function(){return“\x3c”}
- Chrome将其转换为字符串
,即后跟“x3c”的文本反斜杠“function(){return“\x3c”}”
- Rhino将其转换为字符串
“function(){return”只是为了清楚起见,您正在将函数引用传递到
,而不是调用函数的结果。您传递的函数将转换为字符串。也就是说,我认为Chrome的行为不正确。您可以显示Rhino的测试代码吗?@nhahdh,起初,我发现一个网页的行为是有线的。然后,我下载了该网页并对其进行了测试。然后,我发现这是由以下原因引起的:/\x3c/.test(function(){return“\x3c”})。为了让你们更方便,我下载了“rhino1.7.6”,并对其进行如下测试:\n>java-jar js.jar Rhino 1.7.6 2015 04 15 js>/\x3c/.test(function(){return“\x3c”})true------------------正如您所见,结果是正确的。但是,在Chrome中,结果是错误的。@nhahdh,首先,我发现网页的行为是有线的。然后,我下载了网页并对其进行了测试。然后,我发现这是由以下原因造成的:/\x3c/.test(function(){return“\x3c”})。为了让你们更容易,我下载了“rhino1.7.6”,您可以在问题中看到我的测试输入,因为我无法在此注释中键入换行:).test()中