Verwijderen van gedeelte uit string

Status
Niet open voor verdere reacties.

Tijger81

Gebruiker
Lid geworden
2 jan 2010
Berichten
397
Hallo,

Ik heb een vraag.
Als ik deze var heb:
Code:
var gegevens = '59 50 159345 60 56 50 159346 60';

Hoe zorg ik ervoor dat uit de var de nummers worden verwijderd die starten met 159
Dus dat dit overblijft:
Code:
]var gegevens = '59 50 60 56 50 60';

Wie kan mij helpen? Ik heb al verschillende dingen geprobeerd met str.replace in javascript
 
moet 159 alleen ook matchen? of alleen 159x? komt 159xx voor als eerste en/of laatste getal?

Afhankelijk van de invoer werkt zoiets:

Code:
const re = / ?159\d+/g;
var gegevens = '59 50 159345 60 56 50 159346 60';
gegevens.replaceAll(re,'');
 
Het ging om de getallen 159

Het ging om de getallen die begonnen met 159. > Die verwijderen. Dat is gelukt met veel googlen.
Code:
replace(/159[^ }]*/g, "");


Alleen ik zit nu met een ander ding. Ik heb de getallen in een lange string:
5.34567777,52.54438888,0,1593555,5.3488885,52.3777774,2.6,159454,enz..
Nu wil ik graag dit overhouden :
5.34567777 52.54438888,5.3488885 52.3777774,enz

Dat kan door dat tekst die tussen comma's staat die minder dan 8 karakters heeft verwijdert wordt.
 
Laatst bewerkt:
Te korte string tussen , verwijderen

Alleen ik zit nu met een ander ding. Ik heb de getallen in een lange string:

Code:
var string = "5.34567777,52.54438888,0,1593555,5.3488885,52.3777774,2.6,159454,5.34488885,52.3774474"

Nu wil ik graag dit overhouden :

Code:
var string = "5.34567777,52.54438888,5.3488885,52.3777774,5.34488885,52.3774474"

Dat kan door als de tekst die tussen comma's staat minder dan 8 karakters heeft verwijdert wordt, maar hoe doe je dat?
 
je zou van de string een araay kunnen maken die je met met een forEach doorloopt.
Code:
var str1 = "5.34567777,52.54438888,0,1593555,5.3488885,52.3777774,2.6,159454";
var str2 = "";
str1.split(",").forEach(function (str) {
    if (str.length > 7) str2 += " " + str;
});
console.log( str2 );

Ik zie dat de vraag dubbel is gesteld en dat edmoor je vraag al heeft beantwoord.
De 2 topics heb ik daarom samengevoegd.
 
Laatst bewerkt:
Edmoor,

Kun jij mij helpen. Ik heb deze code, maar hij werkt niet goed

Code:
var string = "5.34567777,52.54438888,0,1593555,5.3488885,52.3777774,2.6,159454,5.34488885,52.3774474";   
var splitter = string .split(",")
    var currentArrayCharCount = 0;
    var arrayCharCountLimit = 12;
    for (var i = 0; i < splitter.length; i++) {
      var currentId = splitter[i];
      if (currentArrayCharCount + currentId.length < arrayCharCountLimit) {
        currentArrayCharCount = 0;
        string = string.replace(new RegExp(currentId, "g"), "");
      } else {
      }
    }
 
Ik doe nooit iets met Javascript dus kan daar verder niet bij helpen.
Maar heb je het voorbeeld van Bron al bekeken?
Alleen denk ik dit: " " even wijzigen in ","
 
Laatst bewerkt:
Alleen ik zit nu met een ander ding. Ik heb de getallen in een lange string:
Code:
5.34567777,52.54438888,0,1593555,5.3488885,52.3777774,2.6,159454,enz..
Nu wil ik graag dit overhouden :
Code:
5.34567777 52.54438888,5.3488885 52.3777774,enz

Een spatie of komma was mij niet helemaal duidelijk. In de vraag waren beide separators gebruikt.
Het lijkt erop dat dit een soort geo coords zijn. Klopt dit? Worden daarom zowel de komma als de spatie gebruikt?
 
Het draadje staat al als opgelost gemarkeerd.
 
Had niet verwacht dat iemand in deze topic zou reageren, toch wel dus.

Bedankt Bron voor je code, maar zit met dan nog 1 probleem. Op de plekken waar de getallen verwijderd worden moet eigenlijk een , komen en op de rest van de plekken een spatie.
Dus zo eigenlijk:
5.34567777 52.54438888,5.3488885 52.3777774

Nu komt overal een ,

Ik probeer het nu met:
Code:
nieuw = str2.replace(/ 5./g, ',5.');

Maar dat werkt niet.
 
Laatst bewerkt:
Als de resultaten niet overeenkomen met je vraag dan hoor ik het wel ;)
Code:
var str1 = "5.34567777,52.54438888,0,1593555,5.3488885,52.3777774,2.6,159454";
var str2 = "";
var minimum = 8;
str1.split(",").forEach(function (str) {
    if (str.length >= minimum) {
        // spatie en getal toevoegen
        str2 += " " + str;
    } else {
        // komma toevoegen (alleen als laatste char geen komma is)
        if (str2.substr(str2.length -1) !== ",") str2 += ",";
    }
});
// verwijder eventuele trailing komma
if (str2.substr(str2.length -1) === ",") str2 = str2.substr(0, str2.length -1);
console.log( str2 );
 
Laatst bewerkt:
Hoi,

De code lijkt te werken!

Ipv
Code:
if (str2.substr(str2.length -1) === ",") str2 = str2.substr(0, str2.length -1);
console.log( str2 )

heb ik dit geplaatst (heb ik toch iets zelf gedaan):
Code:
var nieuw = str2.replace(/,\s*$/, "");

Trailing komma is de eindcomma van de gehele string?
 
Als de forEach simpeler wordt en een iets betere schoonmaak aan het eind wordt het dit
Code:
var str1 = "5.34567777,52.54438888,0,1593555,5.3488885,52.3777774,2.6,159454";
var str2 = "";
var minimum = 8;

str1.split(",").forEach(function (str) {
    if (str.length >= minimum) str2 += " " + str;
    else str2 += ",";
});

// schoonmaken
str2 = str2.replace(/,\s/, ","); // vervang 'komma spatie' door komma
str2 = str2.replace(/,+/, ","); // vervang multiple komma's door 1 komma
str2 = str2.replace(/,+$/, "").trim(); // verwijder komma aan eind en spatie aan begin

console.log( str2 );

Code:
str2 na forEach
 5.34567777 52.54438888,, 5.3488885 52.3777774,,

str2 na schoonmaak
5.34567777 52.54438888,5.3488885 52.3777774

edit: iets aangepast.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan