Ich habe etwas Javascript, das einige Plätzchen liest und tut etwas Zusammenbringen. Ich verwende Gruppierungen, um Teile eines regulären Ausdrucks zu erfassen und sie später zu verwenden. Ich habe jedoch ein Problem mit Unicode-Zeichen. Wenn ich ein Zeichen wie \ u25BA ► habe, wenn ich dieses Zeichen in einer Gruppierung finde, gibt es die Zeichenfolge '\ u25BA' anstelle des Unicode-Zeichens zurück, nach dem ich suche. Wenn ich das Zeichen spezifiziere, kann ich das Problem beheben, aber ich kann es nicht dazu bringen, allgemeiner zu arbeiten. Im Folgenden wird arbeiten, wie ich will es:Javascript passt und ersetzt durch Unicode
var matches=theOnclick.match(/.*\(event, ?"([^"]*)", ?"([^"]*)".*\)/);
var expand=matches[1].replace(/\\u25BA/, '\u25BA');
aber dies wird nicht funktionieren:
var expand=matches[1].replace(/\\u([0-9A-Z])/, '\u\1');
irgendwelche Vorschläge?
Weitere Informationen: Vielen Dank für Ihre Antworten. Lassen Sie mich ein wenig mehr Hintergrund hinzufügen. Ich denke, das Problem ist, dass ich meine Spiele von einem "Onclick" auf einer Spanne bekomme. Ich habe ein etwas ausführlicheres Beispiel unten eingefügt. Wenn ich eine normale Zeichenkette mit Unicode-Zeichen habe, bekomme ich beim Unicode-Zeichen die Unicode-Zeichen. Wenn ich jedoch die Zeichenfolge vom Wert des Onclicks abrufe, erhalte ich stattdessen die Unicode-Escape-Sequenzen. Also habe ich versucht, die Unicode-Escape-Sequenzen zurück in die Unicode-Zeichen zu konvertieren. Ich hoffe das ergibt Sinn. Vielleicht gibt es einen anderen Weg, es zu tun.
Im folgenden Beispiel verhält sich die Leiste wie gewünscht und foo nicht.
<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>