Keresés

Új hozzászólás Aktív témák

  • sztanozs
    veterán

    Van nektek egy igazi fejtörőm :

    var a1 = 'aa'; a2 = 'aa'; a3 = 'a';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    var a1 = '||'; a2 = '||'; a3 = '|';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    :((
    Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?

    Escape-elni kell, mert néhány karakternek a reguláris kifejezésben saját jelentése van, pl.:
    \ escape karakter
    . bármely karakter
    | vagy-vagy kifejezés
    ^ sor eleje (illetve karakter szekvenciában negálás)
    $ sor vége
    [ karakter szekvencia eleje
    ] karakter szekvencia vége
    ( regex capturing-group eleje
    ) regex capturing-group vége
    { "többszörösítő" módosító eleje
    } "többszörösítő" módosító vége
    * nulla vagy többszöri előfordulás
    ? nulla vagy egyszeri előfordulás
    + egy vagy többszöri előfordulás

    ezeket mind escape-elni kell \-el

  • cattus
    addikt

    Van nektek egy igazi fejtörőm :

    var a1 = 'aa'; a2 = 'aa'; a3 = 'a';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    var a1 = '||'; a2 = '||'; a3 = '|';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    :((
    Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?

    myStringVariable.replace(/\|\|/gm, '|')

    Ez a változóban kicseréli az összes '||' karaktert '|' karakterre.

  • #78693120
    törölt tag

    Van nektek egy igazi fejtörőm :

    var a1 = 'aa'; a2 = 'aa'; a3 = 'a';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    var a1 = '||'; a2 = '||'; a3 = '|';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    :((
    Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?

    Nem RegExp-es, de hátha segít:
    var a1 = '||'; a2 = '||'; a3 = '|';
    a1.split(a2).join(a3);

  • I02S3F
    addikt

    Van nektek egy igazi fejtörőm :

    var a1 = 'aa'; a2 = 'aa'; a3 = 'a';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    var a1 = '||'; a2 = '||'; a3 = '|';
    alert(a1.replace(new RegExp(a2,'g'),a3)) ;
    :((
    Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?

    "regionális karakterezés" - Reguláris kifejezés helyesen.

Új hozzászólás Aktív témák