Подтвердить что ты не робот

Какое использование регулярного выражения [\ b] backspace?

[\b] соответствует символу обратного пространства. Я не могу понять, как строка может содержать символ обратного пространства. Может ли кто-нибудь дать мне конкретный пример того, как это будет использоваться? Большое спасибо.

4b9b3361

Ответ 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, но интерпретируется таким образом в большинстве разновидностей регулярных выражений.

Дальнейшее чтение:

Ответ 2

В контексте регулярного выражения (вне символьного класса) \b не означает возврат на одну позицию; это означает "граница слова". Есть много применений для этого. Например,

/\bword\b/

будет соответствовать some word - someword some word, но не someword.

Как указывает m.butter, вы можете использовать его для сопоставления с символом возврата, если поместите его в класс символов. Например:

var input = "this is a \btest.";
/[\b]/.test(input); // true

Ответ 3

Пример реального мира: мы передаем \b между клиентами (через размещенный сервер), используя наш собственный протокол, чтобы позволить пользователям переходить через текст, который они уже отправили. В одном типе клиента (это один из основанных на веб-браузере, но других нет), я проверяю на попадание в backspace-key (e.which == 8//Ref. https://api.jquery.com/keydown/) и отправьте '\ b'; другие клиенты обрабатывают это (возможно, автоматически). Когда мой веб-клиент получает \b, мой код должен обрабатывать его соответствующим образом.