replacen van bepaalde tekens

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Hogeveen

Mark Hogeveen

21/06/2013 16:01:46
Quote Anchor link
Hallo ik heb de volgende code die onderscheid maakt tussen keywords, operators, en later nog meer zoals haakjes en aanhalingstekens.
Dit is wat ik nu heb, maar als je bijvoorbeeld een operator tegen een keyword aanzet, dan ziet hij ze niet. Terwijl het bij een operator niet uitmaakt of er een spatie voor of achter staat. Bij keywords maakt het juist weer wel uit, anders is het geen "word"
Dit zou bijvoorbeeld gewoon goed moeten zijn: abc++
Maar mijn script ziet dus niet de ++ als een operator, als ik dit zou doen abc ++ (met spatie ertussen)
Dan zou hij het wel zien als een operator.
Ik weet wel waar het door komt, ik doe de hele string in stukjes hakken. Maar ik weet geen andere manier. Weten jullie een oplossing?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var operators = ["<", "+", "-", ">"],
    keywords = ["class", "ab"];

function highlight(str) {
    return str.replace(/[^ ]+/g, function(m) {
        if (operators.indexOf(m) > -1)
            return '<span class="operators">' + m + '</span>';
        else if (keywords.indexOf(m) > -1)
            return '<span class="keywords">' + m + '</span>';
        return m;
    });
}

document.body.innerHTML = highlight("< + class abc > -"); // Test

Keywords moeten dus wel los van elkaar staan, operators hoeven niet los te staan van een variabele of iets dergelijks.
Gewijzigd op 21/06/2013 16:04:34 door Mark Hogeveen
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.