10.03.2013, 11:25
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
помогите со скриптом.
Как добавить "слону"-"розовый",а "щенку"-"весёлый",где их нет?
<script type="text/javascript">
arr=["щенок весёлый","слон ","щенок весёлый","слон розовый","щенок"];
reg=/(.+)(?:/s(.+))?/g;
</script>
|
|
10.03.2013, 13:05
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
Сообщение от dima***
|
Как добавить "слону"-"розовый",а "щенку"-"весёлый",где их нет?
|
Как вариант...
var a=["щенок весёлый","слон ","щенок весёлый","слон розовый","щенок"];
var i;
for (i=0; i<a.length; i++) {
a[i]=a[i].replace(/(слон|слон\s)$/gi,'$1 розовый')
a[i]=a[i].replace(/(щенок|щенок\s)$/gi,'$1 весёлый')
};
alert(a);
|
|
10.03.2013, 13:13
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
var arr=["щенок весёлый","слон","щенок весёлый","слон розовый","щенок"];
arr=arr.join(",").replace(/,щенок.*?(?=,|$)/g,',щенок весёлый').replace(/,слон.*?(?=,|$)/g,',слон розовый').split(',')
alert(arr)
|
|
10.03.2013, 13:20
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
var arr = ["щенок весёлый", "слон ", "щенок весёлый", "слон розовый", "щенок"] ;
var reg = /^(слон|щенок) ?$/g ;
for(var i=0; i<arr.length; i++) arr[i] = arr[i].replace(reg, function(a, b) {
return b + " " + ((b=="слон") ? "розовый" : "веселый") ;
}) ;
alert(arr) ;
__________________
★ ²º¹³ ☆
|
|
10.03.2013, 13:27
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
ksa,Deff,Hekumok-спасибо!
А если элементов в массиве очень много?Не только "щенок" и "слон".
Как сделать универсальный шаблон?
Последний раз редактировалось dima***, 10.03.2013 в 13:30.
|
|
10.03.2013, 13:43
|
|
Интересующийся
|
|
Регистрация: 05.03.2013
Сообщений: 20
|
|
Сообщение от dima***
|
ksa,Deff,Hekumok-спасибо!
А если элементов в массиве очень много?Не только "щенок" и "слон".
Как сделать универсальный шаблон?
|
логично будет вместо "щенка" и "слона" поставить переменные и не заморачиваться
|
|
10.03.2013, 18:37
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Так и не получается...
|
|
10.03.2013, 18:42
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от dima***
|
ksa,Deff,Hekumok-спасибо!
А если элементов в массиве очень много?Не только "щенок" и "слон".
Как сделать универсальный шаблон?
|
Пример в студию ?, и потом, зачем в реале дублировать - удобнее исключать более короткие двухсловные?
|
|
10.03.2013, 19:20
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Сообщение от dima***
|
А если элементов в массиве очень много?Не только "щенок" и "слон".
Как сделать универсальный шаблон?
|
Например, так
var arr = ["щенок веселый", "щенок ", "слон", "слон розовый", "лиса хитрая", "волк ", "волк серый", "лиса"] ;
var m1 = ["щенок", "слон", "лиса", "волк"], m2 = ["веселый", "розовый", "хитрая", "серый"] ;
for(var i=0, l=arr.length; i<l; i++) {
for(var j=0, len=m1.length; j<len; j++) {
if(arr[i]==m1[j]||arr[i]==m1[j]+" ") arr[i] = m1[j]+" "+m2[j] ;
} ;
} ;
alert(arr) ;
__________________
★ ²º¹³ ☆
|
|
10.03.2013, 20:08
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Hekumok,ну да,так!!!Спасибо!
А,если с помощью "регулярки"?
reg=/(.+)(?:/s(.+))?/g;
Т.е. $1=m1,а $2=m2.
|
|
|
|