Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    aggiungere carattere spazio

    Ciao a tutti,

    vi spiego velocemente il mio problema.
    ho una stringa con all'interno orari che non hanno spazi tra di loro, di seguito un esempio:
    codice:
    Apertura:8:30-13:0016:30-20:00
    Vorrei aggiungere uno spazio prima e dopo ogni orario ottenendo il seguente risultato:
    codice:
    Apertura: 8:30 - 13:00  16:30 - 20:00 
    I problemi su cui mi sto focalizzando sono i seguenti:
    1. avevo pensato di identificare il carattere : e mettere uno spazio prima dei due numeri che precedono i : e mettere uno spazio dopo i due numeri che seguono i :
    2. come potete vedere, l'ora non è sempre di due caratteri

    Secondo voi c'è un modo per farlo? o mi devo arrendere?
    javascript o jQuery ovviamente.

    ringrazio anticipatamente ogni suggerimento.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,685
    Ciao, si, può esserci anche più di un modo, magari splittando la stringa o facendo un replace in base ad una espressione regolare opportunamente impostata.

    Però, giusto per capire, ti chiedo quale sia il motivo per cui pensi di risolvere attraverso JavaScript. Da dove ti arrivano quelle stringhe così "malformate"? e in quale contesto devi poi usarle?

    Te lo chiedo, non perché ci siano problemi a trovare una soluzione in JavaScript, ma magari potrebbe essere una soluzione poco ideale a seconda del contesto dal momento che JavaScript agisce a valle del problema. Ad esempio, se si tratta di dati che devi rendere fruibili sul web, potresti incontrare varie problematiche collaterali. In tal caso sarebbe più opportuno pensare di risolvere il problema a monte.

    Personalmente, prima di fornirti qualche soluzione, preferisco metterti al corrente e capire meglio il contesto. Puoi chiarire?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    Questo problema è relativamente semplice, potresti risolverlo cosi :

    1) crea una funzione che prende la stringa ora per esempio : hourFix(hour){...}

    2) utilizza hour.replaceAll() per trasformare i segni '-' in segni con spazi ' - '

    3) cattura in una variabile hourToFix il contenuto centrale dell'orario tramite un'espressione regolare
    hour.match(/:\d+:/g) per ottenere [ ':0016:' ]

    4) crea una varibile hourToReplace da hourToFix.join().split('')
    per ottenere una array di questo tipo [ ':', '0', '0', '1', '6', ':' ]

    5) utilizza il metodo splice() su hourToReplace per inserire uno spazio nell'array in questo modo:
    hourToReplace.splice(3,0,' ')

    6) trasforma hourToReplace nuovamente in stringa con il metodo .join() per ottenere una stringa
    ':00 16:'

    7) utilizza il medoto .replace(hourToFix,hourToReplace) per cambiare la parte centrale dell'orario

    8) ritorna hour

    dunque quando richiama la funzione in questo modo:

    const newHour = hourFix('8:30-13:0016:30-20:00')

    console.log(newHour) // 8:30 - 13:00 16:30 - 20:00

  4. #4
    grazie dei suggerimenti, penso di aver capito come fare.

    Saluti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.