Возможно ли в Javascript определить, содержит ли строка многобайтовые символы? Если да, можно ли сказать, какие из них?Как определить, содержит ли строка многобайтовые символы в Javascript?
Проблема Я бегу в это (извинения, если полукокс Unicode не отображается правильно для вас)
s = "";
alert(s.length); // '2'
alert(s.charAt(0)); // '��'
alert(s.charAt(1)); // '��'
Edit для немного ясности здесь (я надеюсь,).Как я понимаю сейчас,, все строки в Javascript представлены в виде ряда кодовых точек UTF-16, что означает, что обычные символы на самом деле занимают 2 байта (16 бит), поэтому мое использование «multibyte» в заголовке было немного выключено. Некоторые символы не попадают в базовую многоязычную плоскость (BMP), такую как строка в приведенном выше примере, и поэтому они занимают две кодовые точки (32 бита). Это вопрос, который я задавал. Я также не редактирую оригинальное название, так как кому-то, кто мало знает об этом материале (и, следовательно, будет искать SO для информации об этом), «многобайтовый» имеет смысл.
регулярное выражение? – Marco
проверить на что? – nickf
Это для Unicode, или это может быть UTF-8? – Davidann