Sto scrivendo qualche javascript che elabora il contenuto del sito. I miei sforzi vengono sventati dalla tendenza dell'editor di testo di SharePoint a inserire il carattere "spazio di larghezza zero" nel testo quando l'utente preme backspace. Il valore unicode del carattere è 8203 o B200 in esadecimale. Ho provato a usare la funzione predefinita "replace" per sbarazzarmene. Ho provato molte varianti, nessuna delle quali funzionava:JavaScript remove ZERO WIDTH SPACE (unicode 8203) dalla stringa
var a = "om"; //the invisible character is between o and m
var b = a.replace(/\u8203/g,'');
= a.replace(/\uB200/g,'');
= a.replace("\\uB200",'');
e così via e così via. Ho provato diverse varianti su questo tema. Nessuna di queste espressioni lavoro (testato in Chrome e Firefox) L'unica cosa che funziona sta scrivendo il carattere effettivo nell'espressione:
var b = a.replace("",''); //it's there, believe me
Questo pone problemi potenziali. Il personaggio è invisibile, quindi quella linea in sé non ha senso. Posso aggirarlo con i commenti. Ma se il codice viene mai riutilizzato e il file viene salvato utilizzando la codifica non Unicode, (o quando viene distribuito in SharePoint, non è garantito che non comprometterà la codifica) smetterà di funzionare. C'è un modo per scrivere questo usando la notazione Unicode invece del carattere stesso?
[mie divagazioni sul personaggio]
Nel caso in cui non si sono incontrati questo personaggio, (e probabilmente non hanno, visto che è invisibile ad occhio nudo, a meno che non si è rotto il codice e si scoprì mentre cerca di localizzare il bug) è un vero buco che causerà il malfunzionamento di alcuni tipi di pattern matching. Ho messo in gabbia la bestia per te:
[] < - attento, non lasciarlo scappare.
Se si desidera visualizzarlo, copiare le parentesi in un editor di testo e quindi scorrere il cursore attraverso di esse. Noterai che avrai bisogno di tre passaggi per passare ciò che sembra 2 caratteri e il tuo cursore salterà un passaggio nel mezzo.
Grazie, sei un risparmiatore di vita! – jaggedsoft