40 Stimmen

Wie findet man heraus, ob eine bestimmte Zeichenkette Unicode-Zeichen enthält (insbesondere Double Byte-Zeichen)?

Um genauer zu sein, muss ich wissen, ob (und wenn möglich, wie) ich herausfinden kann, ob eine gegebene Zeichenkette Doppelbyte-Zeichen enthält oder nicht. Im Grunde muss ich ein Popup-Fenster öffnen, um einen bestimmten Text anzuzeigen, der Doppelbyte-Zeichen enthalten kann, wie z. B. Chinesisch oder Japanisch. In diesem Fall müssen wir die Fenstergröße anpassen, als es für Englisch oder ASCII der Fall wäre. Hat jemand einen Tipp?

0 Stimmen

Nun, ich hatte erwartet, dass das funktioniert. Aber es funktionierte nicht im IE. Ich vermute, dass es Layout-Probleme gibt. Wie auch immer, da der Code zum Berechnen der Länge und Höhe/Breite des anzuzeigenden Textes bereits vorhanden war, ging ich mit dem Code weiter, der nur herausfindet, ob ein Doppelbyte-Zeichen vorhanden ist oder nicht. Und das war die Lösung.

0 Stimmen

Mit HTML5 können Sie den Kontext eines Canvas-Elements ( var ctx = canvas.getContext('2d') ), um die Breite der Textmetrik zu erhalten. var text_width = ctx.measureText(text).width; Ich bin nicht sicher, wie gut diese Methode mit Unicode-Zeichen funktioniert, und es ist eine Schande, dass alle measureText Methode gibt derzeit die Breite zurück.

0voto

Oli Punkte 226885

Warum lässt sich die Größe des Fensters nicht auf der Grundlage der Laufzeithöhe/-breite selbst ändern?

Führen Sie in Ihrem Pop-up-Fenster etwas wie dieses aus:

window.resizeTo(document.body.clientWidth, document.body.clientHeight);

0 Stimmen

So etwas sollte in nicht-pathologischen Fällen funktionieren; natürlich müssen Sie sicherstellen, dass Sie den verfügbaren Platz auf dem Bildschirm nicht überschreiten, oder zumindest von vernünftigen Grenzen ausgehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X