Sto costruendo un validatore JSON da zero, ma sono abbastanza bloccato con la parte di stringa. La mia speranza è stata la costruzione di un espressione regolare che corrisponda al seguente sequenza trovato su JSON.org:Regex per abbinare una stringa JSON
mio regex finora è:
/^\"((?=\\)\\(\"|\/|\\|b|f|n|r|t|u[0-9a-f]{4}))*\"$/
lo fa abbinare i criteri con un backslash seguito da un personaggio e una stringa vuota. Ma non sono sicuro di come usare la parte UNICODE.
C'è una regex per adattarsi a qualsiasi esperto UNICODE carattere "o \ o carattere di controllo? E sarà corrispondere un ritorno a capo o di tabulazione orizzontale?
L'ultima domanda è perché la regex hanno la stringa '\ t', ma non "" (quattro spazi, ma l'idea è di essere una scheda) Altrimenti dovrò espandere la regex con esso, che non è un problema, ma la mia ipotesi è che la linguetta orizzontale è un carattere UNICODE
Grazie a Jaeger Kor, ora ho la seguente espressione regolare:
/^\"((?=\\)\\(\"|\/|\\|b|f|n|r|t|u[0-9a-f]{4})|[^\\"]*)*\"$/
Sembra corretto, ma esiste un modo per controllare i caratteri di controllo o non è necessario così come appaiono sui caratteri non stampabili su regular-expressions.info? L'input da convalidare è sempre testo da una textarea.
Aggiornamento: l'espressione regolare è come seguendo nel caso qualcuno ne ha bisogno:
/^("(((?=\\)\\(["\\\/bfnrt]|u[0-9a-fA-F]{4}))|[^"\\\0-\x1F\x7F]+)*")$/
Grazie per la vostra q risposta rapida. L'ho aggiunto alla mia prima espressione regolare e sembra che funzioni bene. Non so nulla dei caratteri di controllo, ma forse non devo preoccuparmene perché l'input proviene da una textarea in cui potrebbero non essere accettati. L'ultima espressione regolare che hai fornito è stata una regex completa, ma Voglio sapere dove si trova l'errore. Ma di nuovo, lo controllerò se potrebbe essere più utile! – Sietse
Ho giocato con la tua ultima regex e, quando li dividi, funzionano alla grande! Grazie! – Sietse
Thx! L'URL di ricerca è: https://regex101.com/library?orderBy=MOST_POINTS&search=json – vbrajon