freeCodeCamp/curriculum/challenges/chinese/02-javascript-algorithms-an.../basic-javascript/escape-sequences-in-strings.md

2.6 KiB

id title challengeType videoUrl forumTopicId dashedName
56533eb9ac21ba0edf2244b6 转义字符 1 https://scrimba.com/c/cvmqRh6 17567 escape-sequences-in-strings

--description--

引号不是字符串中唯一可以被转义(escaped)的字符。 使用转义字符有两个原因:

  1. 首先是可以让你使用无法输入的字符,例如退格。
  2. 其次是可以让你在一个字符串中表示多个引号,而不会出错。

我们在之前的挑战中学到了这个。

代码输出
\'单引号
\"双引号
\\反斜杠
\n换行符
\r回车符
\t制表符
\b退格
\f换页符

请注意,必须对反斜杠本身进行转义,它才能显示为反斜杠。

--instructions--

使用转义序列把下面三行文本赋值给一个变量 myStr

FirstLine
    \SecondLine
ThirdLine

你需要使用转义字符正确地插入特殊字符。 确保间距与上面文本一致,并且单词或转义字符之间没有空格。

注意: SecondLine 是因为键入了转义字符(而不是空格),所以在那个位置。

--hints--

myStr 不能包含空格。

assert(!/ /.test(myStr));

myStr 应包含字符串 FirstLineSecondLineThirdLine(记得区分大小写)。

assert(
  /FirstLine/.test(myStr) && /SecondLine/.test(myStr) && /ThirdLine/.test(myStr)
);

FirstLine 后面应该是一个换行符 \n

assert(/FirstLine\n/.test(myStr));

myStr 应该包含一个制表符 \t,它在换行符后面。

assert(/\n\t/.test(myStr));

SecondLine 前面应该是反斜杠 \

assert(/\\SecondLine/.test(myStr));

SecondLineThirdLine 之间应该是换行符。

assert(/SecondLine\nThirdLine/.test(myStr));

myStr 应该只包含上面要求的字符。

assert(myStr === 'FirstLine\n\t\\SecondLine\nThirdLine');

--seed--

--after-user-code--

(function(){
if (myStr !== undefined){
console.log('myStr:\n' + myStr);}})();

--seed-contents--

var myStr; // Change this line

--solutions--

var myStr = "FirstLine\n\t\\SecondLine\nThirdLine";