Tylko ja nie wiem jak z tego skorzystać.
Dobra dzięki serioo.
Pomogłeś mi bardzo.
Hej,
mam tu jeszcze jeden problem.
<script type="text/javascript">
// skryp liczący słowa, słowa pogrubione, słowa wersaliki(kapitaliki duże litery)
function button() {
var string = "<em>asd <strong>tamiza</strong> test</em> <strong>asd <em>xxx</em></strong> <strong>Szymon <em>Dawidowicz</em> robi <em>ogłoszenie</em></strong> <strong>w</strong> Gazecie <strong>Ostrowskiej.</strong> <strong>zxc <em>rty</em></strong>";
var test = string.split(" ");
var countarray = (test.length);
// Ilość słów w ciągu dekorowanych i nie dekorowanych
//alert(countarray); //14
// End Ilość słów w ciągu dekorowanych i nie dekorowanych
// Ilość słów pomiędzy pojedynczych <strong>...</strong>
var strongsingle = new Array();
for(n in test) {
var x = test[n];
var g = x.search("<strong>");
var p = x.search("</strong>");
if(g == 0 && p > 0)
{
strongsingle[n] = n;
}
}
// End Ilość słów pojedynczych czyli <strong>...</strong>
arrstrongsingle = strongsingle.filter(function(){return true});
//1, 9, 11 wystapienia w tablicy pojedynczych słów oznaczonych znacznikiem <strong>...</strong>
// Ilość słów pomiędzy pojedynczych <em>...</em>
var emsingle = new Array();
for(k in test) {
var x = test[k];
var g = x.search("<em>");
var p = x.search("</em>");
if(g == 0 && p > 0)
{
emsingle[k] = k;
}
}
// End Ilość słów pojedynczych czyli <em>...</em>
arremsingle = emsingle.filter(function(){return true});
//4,6,8,13 wystapienia w tablicy pojedynczych słów oznaczonych znacznikami <em>...</em>
var emmultistart = new Array();
var emmultistop = new Array();
var strongstart = new Array();
var strongstop = new Array();
for(y in test) {
var x = test[y];
var g = x.search("<em>");
var p = x.search("</em>");
var r = x.search("<strong");
var j = x.search("</strong>");
if(g == 0)
{
emmultistart[y] = y;
}
if(r == 0)
{
strongstart[y] = y;
}
if(p > 0)
{
emmultistop[y] = y;
}
if(j > 0)
{
strongstop[y] = y;
}
}
arremmultistart = emmultistart.filter(function(){return true});
//0,4,6,8,13
arremmultistop = emmultistop.filter(function(){return true});
//2,4,6,8,13
arrstrongstart = strongstart.filter(function(){return true});
//1,3,5,9,11,12
arrstrongstop = strongstop.filter(function(){return true});
//1,4,8,9,11,13
//alert(tablica2.toString());
var tablica1 = arrstrongsingle, tablica2 = arremmultistart, tablica3 = arremmultistop;
var przedzialy = tablica2.map(function(liczba_z_tablica2, i) {
return [liczba_z_tablica2, tablica3[i]];
}); // zmienna przedzialy teraz zawiera tablice z elementami [1,1], [3,4], [5,8]...... itp.
var przefiltrowane = tablica1.filter(function(liczba) {
return (przedzialy.filter(function(przedzial) {
return liczba >= przedzial[0] && liczba <= przedzial[1];
})).length;
});
alert(przefiltrowane);
}
</script>
Nie wiem daleczego ale jeżeli podam zmienna ktora jest tablicą arrstrongsingle z takimi wartośćami [1,9,11] to źle mi oblicza.
Dwie pozostałe tablice to arremmultistart [0,4,6,8,13], arremmultistop[2,4,6,8,13]. Czyli tylko jeden jest w przedziale.
A skrypt wyświetla mi 1 i 11.
Dodam że jeżeli napiszę tablicę ręcznie [1,9,11] skrypt to dobrze wylicza ale jak podaję wzmienna źle liczy.
Co może być nie tak?