2016-04-04 3 views
1

Есть ли способ сравнить строку со строкой, содержащей escape-символы.Сравните строку с escape-символами

То, что я должен на сегодняшний день это:

var text = '\\SPX\FTP'; 
if(text.substring(0,2) === '\\'){ 
    console.info('true') 
} 

Это должно быть правдой, но это не так.

+1

почему это должно быть правдой? –

+1

Фактическое значение, если 'text' является' \ SPXFTP', является правильным? –

+0

Фактическое значение 'text' равно' \\ SPX \ FTP' –

ответ

2

Как один из \ экранируются, вам нужно сравнить только один символ:

var text = '\\SPX\FTP'; 
if(text.substring(0,1) === '\\'){ 
    console.info('true') 
} 
+1

Будет ли это не сравнивать строку \, а не \\ ? –

+0

Я закончил сравнение с 'if (text.substring (0,2) === '\\\\')' который работал –

1

Если у вас есть доступ к tagged template strings в ES6, или transpiling с помощью Бабеля, вы можете использовать String.raw:

var text = String.raw`\\SPX\FTP`; 
if(text.substring(0,2) === String.raw`\\`){ 
    console.info('true') 
} 

Возврат true.

1

Либо по сравнению с одним символом, либо в зависимости от того, что вам нужно.

один (я подозреваю, что это один вам нужно):

var text = '\\SPX\FTP'; 
if (text.substring(0, 1) === '\\') { // Remember \\ after escape == \ 
    console.info('true') 
} 

Два:

var text = '\\SPX\FTP'; 
if (text.substring(0, 2) === '\\S') { 
    console.info('true') 
} 
Смежные вопросы