LINUX.ORG.RU

Регулярка по замене hex

 , ,


0

1

Есть hex последовательность символов E2808c(utf-8 ZERO WIDTH NON-JOINER) в строке, их надо удалять. Как написать регулярку по их замене?
Пробую

text.replace(/\xe2\x80\x8c/gm, "")
не заменяет
text.match(/\xe2\x80\x8c/gm)
null

Ничего не заменяет

★★★★

А если заэкранировать обратный слеш?

\\xe2\\x80\\x8c

anonymous
()
Ответ на: комментарий от Grzegorz

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects...

\xhh	Сопоставляется с символом с кодом hh (две шестнадцатеричные цифры).
\uhhhh	Сопоставляется с символом со значением Юникода hhhh (четыре шестнадцатеричные цифры).

Я этот мануал раз 10 перечитывал, но где там про 256 сказано?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Я этот мануал раз 10 перечитывал, но где там про 256 сказано?

В твоей же цитате.

\xhh Сопоставляется с символом с кодом hh (две шестнадцатеричные цифры).

Т.е. максимальное значение — FF, что соответствует 255 в десятичной системе.

\uhhhh Сопоставляется с символом со значением Юникода hhhh (четыре шестнадцатеричные цифры).

Т.е. максимальное значение — FFFF, что соответствует 65535 в десятичной системе.

Grzegorz
()
Ответ на: комментарий от Grzegorz

\xhh Сопоставляется с символом с кодом hh (две шестнадцатеричные цифры).

Т.е. максимальное значение — FF, что соответствует 255 в десятичной системе.

Не пойму, почему из первого следует второе. Там написано что hh это 2 шестнадцатеричные цифры, например e2, но где там сказано про FF?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

где там сказано про FF

0xFF — это максимальное число, которое можно записать двумя 16-ричными цифрами.

bormant ★★★★★
()
Ответ на: комментарий от gobot

Не пойму, почему из первого следует второе. Там написано что hh это 2 шестнадцатеричные цифры, например e2, но где там сказано про FF?

Попробуй двумя шестнадцатеричными цифрами записать число больше FF.

Grzegorz
()
Ответ на: комментарий от gobot

Ок, но почему даже /\xe2/gm не находит?

Потому что находить нечего.

Ведь число E2 присутствует в строке

А символы с кодом E2 не присутствуют.

Grzegorz
()
Ответ на: комментарий от gobot

Почему нет? E4 - &#228

А причём тут E4?

Латинская маленькая буква a с diaeresis

А причём тут латинская маленькая буква a с diaeresis и где она в твоей строке символов?

Grzegorz
()
Ответ на: комментарий от Grzegorz

А причём тут E4?

Ну, это же искомый код. Как бы его заменить в строке?)

gobot ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.