Переделать функцию с PHP на JavaScript

Бюджет: по договоренности
Заказчик выбрал исполнителя:
Николай Карасев  
Нужно переделать функцию с PHP на JavaScript
или написать свою на JS

Функция парсит макросы рандомизации 
макрос {AAA|BBB|CCC|DDD} выдаст AAA или BBB 
макрос {EEE|{FFF|GGG}} выдаст EEE или FFF или GGG
или например
{Hi|Hello}, {How {R|are} {you|U}?|Where are {U|You}?}
итд



Важно проверить чтоб в случае плохого синтаксиса (например где то забыта закрывающая скобка "}"  )
функция выдавала например ERROR 


Вот функция 
Пишите цену и срок
<?php

///////////// RANDOM TEXT FUNCTION /////////////////
function GetMacrosResultAdv($ASource){
function getRndVal($ASrc){
$ex = explode('|', $ASrc);
return $ex[array_rand($ex)];
}
function getMacrosEndPos($ASrc){
$lvl = 1;
$sr = 0;
while ((strlen($ASrc)>0) && ($lvl>0)){
$p = strpos($ASrc, '}');
if ($p === false){
$sr = $sr + strlen($ASrc);
break;
}
$lvl = $lvl + substr_count(substr($ASrc, 0, $p), '{') – 1;
$ASrc = substr($ASrc, $p+1);
$sr = $sr + $p + 1;
}
return $sr;
}
function getMcrsLoc($ASrc){
$sr = '';
while (strpos($ASrc, '{') !== false){
  $sr = $sr . substr($ASrc, 0, strpos($ASrc, '{'));
  $ASrc = substr($ASrc, strpos($ASrc, '{')+1);
  $p = getMacrosEndPos($ASrc);
  $sr = $sr . getRndVal(getMcrsLoc(substr($ASrc, 0, $p-1)));
  $ASrc = substr($ASrc, $p);
}
return $sr . $ASrc;
}
return getMcrsLoc($ASource);
}

///////////// EXAMPLE /////////////////
echo GetMacrosResultAdv("{{Hi|Hello}|Hola}, {how are you?|How do U do?}");


?>
Опубликован 09.05.2017 в 14:54

Выберите способ верификации:

Обновите страницу после прохождения верификации.