Сплит строка с обратной косой чертой - PullRequest
0 голосов
/ 07 мая 2018

Мне нужно разделить строку с помощью обратной косой черты.

I M \ SPLITTING

Мой ожидаемый результат:

["Я М", "РАЗДЕЛЕНИЕ"]

Я попробовал следующее:

console.log(("I M \ SPLITING").split("\"));

console.log(("I M \ SPLITING").split("\\"));

Отлично работает с косой чертой:

console.log(("I M / SPLITING").split("/"));

Ответы [ 4 ]

0 голосов
/ 12 июля 2019

Самый простой способ сделать это - преобразовать заданную строку в необработанную строку, где мы получим обратную косую черту, как она есть

для вышеописанного сценария "\ b1 \ c1 \ d1" в ["", "b1"," c1 "," d1 "]

let a = String.raw`YOUR_STRING`;

let b=a.split("\\");

for eg;

let a =String.raw`\b1\c1\d1`; //Output a ="\b1\c1\d1"

let b = a.split("\\"); // Output b = ["", "b1", "c1", "d1"]

Это альтернативный подход к нему.

Уже протестированы в консоли Chrome и для получения дополнительной информации о методе String.raw см.: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw

0 голосов
/ 07 мая 2018

На самом деле, ваша строка не содержит обратной косой черты, интерпретатор считает ее единственным escape-символом. Попробуйте это решение

console.log(("I M \\ SPLITING").split("\\"));
0 голосов
/ 07 мая 2018

Ответы выше верны согласно:

console.log(("I M \\ SPLITING").split("\\"));

Однако вам нужно понимать escape-символы, чтобы понять почему.

Для быстрого 101 на Javascript Strings -> https://www.w3schools.com/js/js_strings.asp

JavaScript использует \ (обратную косую черту) в качестве escape-символов для:

\' single quote
\" double quote
\ backslash
\n new line
\r carriage return
\t tab
\b backspace
\f form feed
\v vertical tab (IE < 9 treats '\v' as 'v' instead of a vertical tab ('\x0B'). If cross-browser compatibility is a concern, use \x0B instead of \v.)
\0 null character (U+0000 NULL) (only if the next character is not a decimal digit; else it’s an octal escape sequence)

Обратите внимание, что экранирование \ v и \ 0 недопустимо в строках JSON.

0 голосов
/ 07 мая 2018

Вы должны экранировать обратную косую черту в вашей строке и в параметре split, иначе это будет либо

  • "\" => "" (просто пробел)
  • "\" => "(Escape)" (синтаксическая ошибка)

console.log(("I M \\ SPLITING").split("\\"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...