Показать сообщение отдельно
  #1 (permalink)  
Старый 07.07.2013, 20:37
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Что не так с регуляркой?
Доброго времени суток!

Простенькая задачка, нужно менять слова в предложении которые находятся в {} и разделены |

Но я не врубаюсь, что не так с регуляркой? почему {} запоминаются?
<!DOCTYPE html>

<html>
<head>
    <title></title>
    <meta charset="utf8">
</head>

<body>
<script>
    
    
    
    
    function init() {
    var text =  "Я {самый|очень|плохой|доктор|кролик из статей про наследование и}  сантехник, которому не составит труда {написать|сварганить| запостить} код для этого задания, в котором слова будут изменяться {быстро|мгновенно|рэндомно}",

        reg = /(?:\{).*?\|.*?\|?(?:\})/g,
        arrReplace = [], randOut = [],
        search = text.match(reg),
        input = document.getElementById('text');
        
        for (var i = 0; i < search.length; i++) {
        
            arrReplace[i] = search[i];
            arrReplace[i] = arrReplace[i].split('|');
            randOut[i] = arrReplace[i][Math.floor(Math.random()*(arrReplace[i].length))];
            text = text.replace(search[i], randOut[i]);
            
        }
        input.innerHTML = text;
    }
    window.onload = init;



    
    
</script>
<div id="text"></div>

</body>
</html>
__________________
Научу себя плохому
Ответить с цитированием