Ответ 1
В то время как все остальные в целом правы (что \b
является границей слова), \b
действительно означает возврат на задний план внутри классов символов:
[\b]
Это действительно будет соответствовать символу возврата. Это просто контрольный символ ASCII, который может появляться в тексте (код ASCII 8 или 10 в восьмеричном). Я предполагаю, что это в основном используется для устаревших причин, чтобы добавить диакритические знаки (например, вы могли бы сделать, забой, a
´
, чтобы получить á
). Сегодня они в основном были заменены знаками объединения Unicode.
Как в конечном итоге будет выглядеть строка, содержащая возврат, зависит от программного обеспечения, которое ее отображает. Консоли, вероятно, по-прежнему будут перемещать курсор назад и перезаписывать то, что было, если за пробелом следуют новые другие символы. Чтобы увидеть это, запустите интерактивную консоль сценариев (например, node.js, если вы хотите попробовать это в JavaScript) и запустите
> console.log("abc\b\bdef")
adef
Обратите внимание, что, если вы опустите def
, вы просто получите abc
, потому что само по себе backspace ничего не стирает. Он только перемещает курсор назад.
С другой стороны, ваш браузер может просто игнорировать его в поле ввода. Например, проверьте конвертер Unicode, введите ввод JavaScript abc\b\bdef
в левом нижнем вводе, нажмите "преобразовать", и вывод "Символы" не bc
.
Между прочим, \b
являясь символом возврата в символьных классах, не является уникальным для JavaScript, но интерпретируется таким образом в большинстве разновидностей регулярных выражений.
Дальнейшее чтение: