У меня есть этот код JS:

var str = "foo bar";
var res1 = str.replace(new RegExp('foo\\b', 'g'), "BAZ");
var res2 = str.replace(new RegExp('foo', 'g'), "BAZ");
console.log("Result1: " + res1 + " Result2: " + res2);

Результат на консоли Chrome Version 69.0.3497.81 (Official Build) (64-bit):

Result1: BAZ bar Result2: BAZ bar

Теперь я тестирую тот же код на PHP с расширением V8Js:

Код PHP:

<?php
$v8 = new V8Js();
$JS = <<<EOT
var str = "foo bar";
var res1 = str.replace(new RegExp('foo\\b', 'g'), "BAZ");
var res2 = str.replace(new RegExp('foo', 'g'), "BAZ");
print("Result1: " + res1 + " Result2: " + res2);
EOT;
echo $v8->executeString($JS);

Результат на PHP 7.2.9 (cli) (built: Aug 15 2018 05:57:41) ( NTS MSVC15 (Visual C++ 2017) x64 ) с расширением V8Js Version 2.1.0:

Result1: foo bar Result2: BAZ bar

Почему разница в результате для result1? !!!

-1
Nabi K.A.Z. 11 Сен 2018 в 16:41

1 ответ

Лучший ответ