[\b]
corrisponde a un carattere di backspace apparentemente. Non riesco a capire come una stringa possa contenere un carattere backspace. Qualcuno può darmi un esempio concreto di come questo sarebbe usato? Grazie mille.A cosa serve l'espressione regolare [ b] backspace?
risposta
mentre tutti gli altri hanno ragione in generale (che \b
è un confine di parola), \b
vuol significa classi di personaggi backspace interna:
[\b]
Questo sarà davvero corrispondere a un backspace carattere. È solo un carattere di controllo ASCII che può apparire nel testo (codice ASCII 8 o 10 in ottale). Suppongo che sia usato principalmente per motivi legacy, per aggiungere segni diacritici (ad esempio potresti fare a
, backspace, ´
, per ottenere á
). Oggi questi sono stati per lo più sostituiti da marchi Unicode.
Come una stringa contenente un backspace alla fine sarà look dipende dal software che lo esegue. Le console probabilmente spostano il cursore indietro e sovrascrivono quello che c'era se il backspace è seguito da altri nuovi caratteri. Per vedere questo, il fuoco su una console di scripting interattivo (come node.js se si vuole provare a JavaScript), ed eseguire
> console.log("abc\b\bdef")
adef
Si noti che, se aveste omesso def
, si era appena ottiene abc
, perché lo stesso backspace non cancella nulla. Sposta solo il cursore indietro.
D'altra parte, il browser potrebbe semplicemente ignorarlo in un campo di input. Ad esempio, dai un'occhiata a Unicode converter, inserisci l'input JavaScript abc\b\bdef
nell'ingresso in basso a sinistra, premi "converti" e l'output "Caratteri" non avrà lo bc
cancellato.
Il modo in cui lo \b
è un backspace in classi di caratteri non è univoco per JavaScript, ma è interpretato in questo modo nella maggior parte delle espressioni di espressioni regolari.
Ulteriori approfondimenti:
Vedere questa risposta per ulteriori dettagli: http://stackoverflow.com/a/6792867/758446 – BlackVegetable
@BlackVegetable grazie, ho cercato qualcosa di simile, ma non sono riuscito a trovare rapidamente alcuna buona fonte –
Ora una sfida successiva sarebbe quello di costruire un caso bizzarro (moderno) in cui in realtà dovresti * voler * catturare un personaggio del genere! – BlackVegetable
Nel contesto di un'espressione regolare (al di fuori di una classe di caratteri) \b
non significa backspace; significa 'limite di parole'. There are lot's of uses for it. Ad esempio,
/\bword\b/
corrisponderà some word
ma non someword
.
Come m.butter fa notare che si può usarlo per abbinare un carattere backspace, se è posto all'interno di una classe di caratteri. Per esempio:
var input = "this is a \btest.";
/[\b]/.test(input); // true
esempio reale: passiamo \ b tra i client (attraverso un server ospitato) utilizzando il nostro protocollo consentire agli utenti di backspace sul testo che hanno già inviato.In un tipo di client (questo è basato sul browser web ma gli altri non lo sono), controllo la presenza di un hit tasto backspace (e.which == 8 // Ref. https://api.jquery.com/keydown/) e invio '\ b'; gli altri client gestiscono questo (possibilmente automaticamente). Quando il mio client web riceve \ b, il mio codice deve gestirlo appropriatamente.
- 1. A cosa serve __RequestVerificationToken?
- 2. .designer.cs a cosa serve?
- 3. A cosa serve OverrideAuthenticationAttribute?
- 4. A cosa serve object()?
- 5. A cosa serve Subject.asObservable?
- 6. System.Web.Abstractions: a cosa serve?
- 7. A cosa serve #pragma?
- 8. A cosa serve Control.IsHandleCreated?
- 9. A cosa serve AnyVal.types?
- 10. A cosa serve Control.Category?
- 11. A cosa serve Enum?
- 12. CGRectIntegral a cosa serve?
- 13. Il functor è per (a -> b) -> (f a -> f b), a cosa serve (Categoria c) => c a b -> c (f a) (f b)?
- 14. A cosa serve `classe A [_]`?
- 15. Comprendere il comportamento backspace (\ b) in C
- 16. A cosa serve fastcgi_index in nginx?
- 17. A cosa serve - [NSUserDefaults registerDefaults:]?
- 18. Lucene SpanQuery: a cosa serve?
- 19. Android: a cosa serve Android.R.id.content?
- 20. A cosa serve `tipo_info :: before`?
- 21. A cosa serve $ # in Bash
- 22. A cosa serve il clientID?
- 23. A cosa serve l'indirizzamento WS?
- 24. A cosa serve "echo || true"?
- 25. A cosa serve sql-dump?
- 26. Perché non sys.stdout.write ('\ b') backspace contro newline?
- 27. a cosa serve la parola chiave final?
- 28. A cosa serve il nome enum?
- 29. A cosa serve Reflection in .NET?
- 30. Discussioni denominate in Delphi: a cosa serve?
Ovviamente una stringa può contenere un "carattere" di backspace - tra virgolette qui, perché _control code_ sarebbe più preciso. Ma fa parte di ASCII (e quindi anche di UTF-8), quindi ovviamente può succedere ovunque vengano utilizzate quelle codifiche. – CBroe
L'ambiente in cui questa stringa è _used_ in lo farà - beh, questa è un'altra domanda. Inserito in HTML o allertato/registrato da JS molto probabilmente non avrà alcun effetto visibile - ma per esempio una stampante molto vecchia (ago) con cui questa stringa è stata mandata potrebbe ripristinare una posizione di carattere e stampare sopra il seguente carattere ... – CBroe
Sì, ho già visto la tua risposta. Grazie per il chiarimento. – CBroe