Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem JS - jak rozdělit string podle zbaků z abecedy a podle čísel

Ahoj, neznáte někdo funkci která by dokázala vytvořit / rozdělit proměnné

1) pokud var (string) obsahuje na začátku znaky z abecedy a na konci var (number) čísla - tak chci vytvořit jednu var (string) před prvním číslem a jednu var (number) za posledním znakem z abecedy
2) pokud var (string) obsahuje znaky z abecedy i na konci - tak chci vytvořit jednu var (string) před číslem, jednu var (number) čísla uprostřed a jednu var (string) za posledním číslem

Díky

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Přiklady var str = 'asdf4154fggh'; a potřebuji v tomto případě získat var a = 'asdf'; var b = 4154;…
Kolemjdoucíí 18.01.2020 22:04
Kolemjdoucíí
Tohle už se pochopit dá. Akorát mi není jasný, jestli chceš dynamicky deklarovat proměnný? To snad a… nový
Pavel 18.01.2020 22:37
Pavel
Jedná se o Javascript a je mi jedno jestli to bude pole nebo objekt. nový
Kolemjdoucíí 18.01.2020 22:43
Kolemjdoucíí
Jak už tu bylo řečeno. Budeš si to muset napsat sám tak, že to budeš procházet znak po znaku. nový
Wikan 18.01.2020 22:48
Wikan
Tady jsem něco našel, ale umí to pouze abcdef123456. Tento string abcdef123456abcdef ani tento strig… nový
Kolemjdoucíí 18.01.2020 23:02
Kolemjdoucíí
Hm, asi se budeš muset mrknout na regulární výrazy. nový
Pavel 18.01.2020 23:04
Pavel
Tak jsem něco vypotil :-D je to sice funkční ale rozdělit string kódem na 20 řádků je fakt síla....… nový
Kolemjdoucíí 18.01.2020 23:59
Kolemjdoucíí
Aj tak sa dá. Alebo ako som už písal, napr https://stackoverflow.com/questions/9792427/javascript-re… poslední
pozorovateľ 19.01.2020 00:21
pozorovateľ
Proste každú skupinu znakov a číslic osamostatniť... Makro v exceli... :-D Pôjdeš od prvého znaku, s… nový
robert13 18.01.2020 22:07
robert13
V C jsou v knihovně ctype rovnou funkce is digit() nebo isalpha(). nový
Prim 18.01.2020 22:31
Prim

Přiklady

var str = 'asdf4154fggh';
a potřebuji v tomto případě získat
var a = 'asdf';
var b = 4154;
var c = 'fggh';
var str = 'gtffdfg87';
a potřebuji v tomto případě získat
var a = 'gtffdfg';
var b = 87;
var str = 'asdf4154fggh87544';
a potřebuji v tomto případě získat
var a = 'asdf';
var b = 4154;
var c = 'fggh';
var d = 87544;

Proměnná var str může obsahovat libovolný počet číslic a znaků z abecedy.

Tady jsem něco našel, ale umí to pouze abcdef123456. Tento string abcdef123456abcdef ani tento strig abcdef123456abcdef123456 to neumí. Nejde to jednoduše doplnit?

var str = 'abcdef123456';
var left = str.slice(0, str.search(/\d/));
var num = str.replace(left, '');
console.log(left, num);

Tak jsem něco vypotil :-D je to sice funkční ale rozdělit string kódem na 20 řádků je fakt síla....

        let znaky = 'abcdef01234ghijkl56789abcdef01234ghijkl56789';
        let temp = '';
        let cisla = ['0','1','2','3','4','5','6','7','8','9'];
        let bool = false ;
        for (let znak of znaky) {
                if ( cisla.includes(znak) === false ) {
                        if ( bool === false ) temp += '-' ;
                        temp += znak;
                        bool = true ;
                }else {
                        if ( bool === true ) temp += '-' ;
                        temp += znak;
                        bool = false ;
                };
        };
        temp = temp.substr(1);
        let array = temp.split('-');
        for ( let i = 0 ; i < array.length ; i++ ) {
                if (i % 2) array[i] = Number(array[i]);
        };
        console.log('array: ', array);

Proste každú skupinu znakov a číslic osamostatniť...
Makro v exceli... :-D
Pôjdeš od prvého znaku, skontroluješ či nasledujúci znak je tiež z rovnakej skupiny. Ak ano, pokračuješ s kontrolou ďalšieho. Ak nie, utneš. So zvyškom pokračuješ odznova dovtedy, kým nedosiahneš posledného znaku. Číslice od ostatných znakov rozlíšiš podľa hodnoty kódu ASCII znaku

Zpět do poradny Odpovědět na původní otázku Nahoru