2016-02-01 3 views
3

Я могу использовать любой другой символ, но когда я использую \ я получаю синтаксическую ошибку.Почему я не могу использовать подстроку с косой чертой?

Я искал в Google, но я ничего не мог найти. Я пробовал с одинарными кавычками и двойными кавычками, но оба дают синтаксическую ошибку. Я также попытался превратить \ в переменную, но это также дало мне синтаксическую ошибку.

var s = $(".originalunc").val(); 
s = s.substring(0, s.indexOf("\")); 
alert(s); 
+4

Вам нужно слеш: 's = s.substring (0, s.indexOf ("\\"));'. Ваш код выдает синтаксическую ошибку. –

+0

не работает. Мое предупреждение пусто – JCD

ответ

12

\ знак имеет особое значение. Он начинает escape-последовательность.

При вводе "\" вы говорите:

  1. ": Начало строкового литерала
  2. \: Begin последовательности
  3. " побега: Добавить символ кавычки в строку (потому что это то, что \" escape-последовательности) вместо «Конец строки».

Затем остальная часть строки находится внутри строкового литерала.

Тогда у вас есть новая строка, которая является ошибкой.

Вам необходимо избегать \, если вы хотите использовать его в качестве данных.

indexOf("\\") 
+0

Я вне голосования. Разве это не должно быть закрыто как опечатка? –

+3

@PraveenKumar - Нет. Проблема в том, что OP не понимает, как работают escape-последовательности, а не то, что они что-то проваливают. – Quentin

+1

Я бы не сказал, так как ОП не знает о том, как работает экранирование персонажа. Если проблема была вызвана неправильным именем переменной, я бы сказал «да». –

0

Вот что работает для меня:

 var myString = $(".originalunc").val().split("\\").pop(); 
    alert(myString); 
Смежные вопросы