Ho una stringa in cui ho bisogno di sostituire tutti i caratteri speciali "~! @ # $%^& *() _ + =` {} [] | :;' <>,. /? " e spazi con trattini. Più caratteri speciali in una riga dovrebbero risultare in un trattino singolo.Regex per la sostituzione di tutti i caratteri speciali e spazi in una stringa con trattini
var mystring="Need [email protected]#$%^\" to /replace this*(){}{}|\><? with_new string ";
// desired output: "Need-to-replace-this-with-new-string"
Attualmente, sto usando questa serie di replace()
chiamate:
return mystring.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-').replace(/\//g, "-");
ma è l'output di questo:
Need----------to/replace-this--------with-new-string;
dove è l'aggiunta di un trattino per ogni carattere speciale nel stringa tranne la barra diretta.
Definisci "tutti i caratteri speciali" sono tutti caratteri non alfanumerici? Un sottoinsieme di quelli? Al minimo * potresti pubblicare un esempio stringa di input e stringa di output, senza che le istruzioni/i requisiti siano presenti all'interno di una stringa? Rende molto confuso cercare di leggere/capire. –
caratteri da rimuovere "~! @ # $%^& *() _ + =' {} [] | \ :; '<>,. /? " e lo spazio e questi devono essere tutti sostituiti con trattino, la stringa è alfanumerica – user2643287
Tutti con un trattino * singolo * nei posti in cui appaiono quei caratteri, o con un trattino per * ogni carattere * che viene sostituito? –