66 lines
4.2 KiB
Markdown
66 lines
4.2 KiB
Markdown
---
|
||
id: 56533eb9ac21ba0edf2244b4
|
||
title: Quoting Strings with Single Quotes
|
||
challengeType: 1
|
||
videoUrl: https://scrimba.com/c/cbQmnhM
|
||
forumTopicId: 18260
|
||
localeTitle: Цитирование строк с одиночными котировками
|
||
---
|
||
|
||
## Description
|
||
<section id='description'>
|
||
Значения <dfn>строк</dfn> в JavaScript могут быть записаны с одинарными или двойными кавычками, если вы начинаете и заканчиваете одним и тем же типом цитаты. В отличие от некоторых других языков программирования одиночные и двойные кавычки работают одинаково в JavaScript. <blockquote> doubleQuoteStr = "Это строка"; <br> singleQuoteStr = 'Это также строка'; </blockquote> Причина, по которой вы, возможно, захотите использовать один тип цитаты над другим, - это если вы хотите использовать оба в строке. Это может произойти, если вы хотите сохранить разговор в строке и провести разговор в кавычках. Другим использованием для него было бы сохранение тега <code><a></code> с различными атрибутами в кавычках, все внутри строки. <blockquote> разговор = 'Финн восклицает Джейку: «Алгебраический!»; </blockquote> Однако это становится проблемой, если вам нужно использовать внешние цитаты внутри нее. Помните, что строка имеет такую же цитату в начале и в конце. Но если у вас есть такая же цитата где-то посередине, строка остановится раньше и выкинет ошибку. <blockquote> goodStr = 'Джейк спрашивает Финна: «Эй, давай отправимся в приключение?»; <br> badStr = 'Финн отвечает: «Поехали!»; // Выдает ошибку </blockquote> В <dfn>goodStr</dfn> выше вы можете безопасно использовать обе кавычки, используя обратную косую черту <code>\</code> в качестве escape-символа. <strong>Заметка</strong> <br> Обратную косую черту <code>\</code> не следует путать с косой чертой <code>/</code> . Они не делают то же самое.
|
||
</section>
|
||
|
||
## Instructions
|
||
<section id='instructions'>
|
||
Измените предоставленную строку на строку с одинарными кавычками в начале и конце и без escape-символов. Прямо сейчас тег <code><a></code> в строке использует двойные кавычки всюду. Вам нужно будет изменить внешние кавычки на одинарные кавычки, чтобы вы могли удалить escape-символы.
|
||
</section>
|
||
|
||
## Tests
|
||
<section id='tests'>
|
||
|
||
```yml
|
||
tests:
|
||
- text: Remove all the <code>backslashes</code> (<code>\</code>)
|
||
testString: assert(!/\\/g.test(code) && myStr.match('\\s*<a href\\s*=\\s*"http://www.example.com"\\s*target\\s*=\\s*"_blank">\\s*Link\\s*</a>\\s*'));
|
||
- text: You should have two single quotes <code>'</code> and four double quotes <code>"</code>
|
||
testString: assert(code.match(/"/g).length === 4 && code.match(/'/g).length === 2);
|
||
|
||
```
|
||
|
||
</section>
|
||
|
||
## Challenge Seed
|
||
<section id='challengeSeed'>
|
||
|
||
<div id='js-seed'>
|
||
|
||
```js
|
||
var myStr = "<a href=\"http://www.example.com\" target=\"_blank\">Link</a>";
|
||
|
||
```
|
||
|
||
</div>
|
||
|
||
### After Tests
|
||
<div id='js-teardown'>
|
||
|
||
```js
|
||
(function() { return "myStr = " + myStr; })();
|
||
|
||
```
|
||
|
||
</div>
|
||
|
||
</section>
|
||
|
||
## Solution
|
||
<section id='solution'>
|
||
|
||
```js
|
||
var myStr = '<a href="http://www.example.com" target="_blank">Link</a>';
|
||
```
|
||
|
||
</section>
|