Ho qualche javascript che legge alcuni cookie e fa qualche abbinamento. Sto usando i raggruppamenti per catturare parti di un'espressione regolare e usarle in seguito. Tuttavia sto riscontrando un problema con i caratteri Unicode. Se ho un personaggio come \ u25BA ►, quando trovo questo personaggio in un raggruppamento, restituisce la stringa '\ u25BA' al posto del carattere Unicode che sto cercando. Se specifichi il carattere, posso risolvere il problema, ma non riesco a farlo funzionare più in generale. Di seguito funzionerà come voglio che:Corrispondenza Javascript e sostituisci con unicode
var matches=theOnclick.match(/.*\(event, ?"([^"]*)", ?"([^"]*)".*\)/);
var expand=matches[1].replace(/\\u25BA/, '\u25BA');
ma questo non funzionerà:
var expand=matches[1].replace(/\\u([0-9A-Z])/, '\u\1');
qualche suggerimento?
Altre informazioni: Grazie per le vostre risposte. Lasciami aggiungere un po 'più di background. Penso che il problema è che sto ottenendo le mie partite da un "onclick" su un intervallo. Ho incluso un esempio leggermente più dettagliato di seguito. Se ho una stringa normale con caratteri unicode, quando faccio una corrispondenza, ottengo i caratteri unicode. Tuttavia, quando prendo la stringa dal valore di onclick, ottengo invece le sequenze di escape unicode. Così ho cercato di convertire le sequenze di escape unicode nei caratteri unicode. Spero che abbia un senso. Forse c'è un altro modo per farlo.
Nell'esempio seguente, la barra si comporta come voglio, e foo no.
<html>
<body>
<span id='foo' onclick='expandCollapse(event, "►", "▼");'>foo</span>
<script type='text/javascript'>
var foo= document.getElementById('foo').onclick+'';
alert(foo);
var foomatches=foo.match(/.*\(event, ?"([^"]*)", ?"([^"]*)".*\)/);
alert(foomatches);
var bar='expandCollapse(event, "►", "▼");'
var barmatches=bar.match(/.*\(event, ?"([^"]*)", ?"([^"]*)".*\)/);
alert(barmatches);
</script>
</body>
</html>