string verwijderen symbolen en vervangen lege ruimte door verbinhsstreepje
Hoi iedereen. Ik wil in javascript graag bij een string alle speciale karakters verwijderen en alle leegruimtes vervangen door een verbindingsstreepje. Bij meerdere lege ruimtes naast elkaar mag er maar 1 verbindgsstreepje voor de plaats komen uiteraard. Ik heb nu het volgende, waarbij alle speciale karakters worden verwijderd. Mijn vraag is: Is onderstaande de juiste werkwijze is om alle speciale symbolen eruit te filteren en hoe krijg ik het voor elkaar om de leegruimte te vervangen door een verbindingsstreepje?
Eigenlijk is het iets meer werk. Je moet wat "edge cases" opvangen, zoals gekke tekens aan het begin en/of eind van de string. Ongeveer zoiets:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
let test = ' a b c & d 1 f ABCDEF &'
test = test.trim() // trim spaces from beginning/end
test = test.toLowerCase()
test = test.replace(/[\W_]+/g, '-') // replace any non-word characters by hyphens
test = test.replace(/^[-]+|[-]+$/g, ''); // trim hyphens from beginning/end
console.log(test)
test = test.trim() // trim spaces from beginning/end
test = test.toLowerCase()
test = test.replace(/[\W_]+/g, '-') // replace any non-word characters by hyphens
test = test.replace(/^[-]+|[-]+$/g, ''); // trim hyphens from beginning/end
console.log(test)
Gewijzigd op 08/05/2024 19:56:50 door Jan Koehoorn
sorry dat ik even niet heb gereageerd. had het nogal druk laatste tijd. Iedereen bedankt voor jullie bijdrage. enorm mee geholpen. toch erg fijn dit forum.
Jan Koehoorn op 08/05/2024 15:59:47:
Eigenlijk is het iets meer werk. Je moet wat "edge cases" opvangen, zoals gekke tekens aan het begin en/of eind van de string.
Toch fijn dat er mensen zijn met verstand van reguliere expressies.
Ik kon er nooit echt aan wennen, mede omdat er meerdere standaarden zijn.
Dus: dank aan Jan!