1

Тема: Як реалізувати заміну (replace) всіх значень?

Привіт всім. Є функція, яка повертає значення лише останнього replace, як виправити, щоб спрацьовували два replace і більше, якщо додати ще в майбутньому? Дякую за увагу

function emoji(text) {
    var urlRegex =[/:-\)/g, /8-P/g];
    var smile = ["<img src='smail/big_grin.png' alt='' align='middle'>", "<img src='smail/crazy.png' alt='' align='middle'>"];
    return text.replace(urlRegex[0], smile[0]) && text.replace(urlRegex[1], smile[1]);
}
Подякували: 221VOLT1

2

Re: Як реалізувати заміну (replace) всіх значень?

Написав аналог на php:

$smail = array(":-)", ":-|");
$grafic = array("<img src='smail/big_grin.png' align='middle'>",
 "<img src='smail/crazy.png' align='middle'>");
$newtext = str_replace($smail, $grafic, $text);

Потрібно замінити це схожою функцією на js

Подякували: 221VOLT1

3

Re: Як реалізувати заміну (replace) всіх значень?

Bygryn написав:

Написав аналог на php:

$smail = array(":-)", ":-|");
$grafic = array("<img src='smail/big_grin.png' align='middle'>",
 "<img src='smail/crazy.png' align='middle'>");
$newtext = str_replace($smail, $grafic, $text);

Потрібно замінити це схожою функцією на js

http://javascript.ru/php/str_replace

Подякували: Bygryn, 221VOLT2

4

Re: Як реалізувати заміну (replace) всіх значень?

VTrim написав:
Bygryn написав:

Написав аналог на php:

$smail = array(":-)", ":-|");
$grafic = array("<img src='smail/big_grin.png' align='middle'>",
 "<img src='smail/crazy.png' align='middle'>");
$newtext = str_replace($smail, $grafic, $text);

Потрібно замінити це схожою функцією на js

http://javascript.ru/php/str_replace

Спасибі, кому цікаво, ось результат:

Прихований текст
function str_replace ( search, replace, subject ) {
    if(!(replace instanceof Array)){
        replace=new Array(replace);
        if(search instanceof Array){
            while(search.length>replace.length){
                replace[replace.length]=replace[0];
            }
        }
    }

    if(!(search instanceof Array))search=new Array(search);
    while(search.length>replace.length){
        replace[replace.length]='';
    }

    if(subject instanceof Array){
        for(k in subject){
            subject[k]=str_replace(search,replace,subject[k]);
        }
        return subject;
    }

    for(var k=0; k<search.length; k++){
        var i = subject.indexOf(search[k]);
        while(i>-1){
            subject = subject.replace(search[k], replace[k]);
            i = subject.indexOf(search[k],i);
        }
    }

    return subject;
}

function emoji(text) {
    var urlRegex =[":-)", "8-P"];
    var smile = ["<img src='smail/big_grin.png' alt='' align='middle'>", "<img src='smail/crazy.png' alt='' align='middle'>"];
    return str_replace(urlRegex, smile, text);
}
Подякували: 221VOLT1