sourcecode

JavaScript에서 여러 줄의 코드에 걸쳐 문자열을 분할하려면 어떻게 해야 합니까?

copyscript 2022. 10. 7. 22:18
반응형

JavaScript에서 여러 줄의 코드에 걸쳐 문자열을 분할하려면 어떻게 해야 합니까?

JavaScript에 코드 행을 구분하여 새로운 행에 있어도 연속적으로 읽힐 수 있는 문자가 있습니까?

뭐랄까...

1. alert (파일을 선택해 주세요)2. \ to delete" (삭제);

이 예에서는 문자열을 두 부분으로 나눌 수 있습니다.

alert ( "Please Select file"
 + " to delete");

또는 스트링일 경우 @Gumbo가 제안하는 바와 같이 백슬래시를 사용할 수 있습니다.

alert ( "Please Select file\
 to delete");

이 백슬래시 접근법이 반드시 바람직한 것은 아니며 일반적으로 지원되지 않을 수도 있습니다(이것에 관한 하드 데이터를 찾는 데 문제가 있었습니다).ECMA 5.1 사양에는 없습니다.

다른 코드(따옴표 없음)로 작업할 경우 줄 바꿈은 무시되며 완전히 허용됩니다.예를 들어 다음과 같습니다.

if(SuperLongConditionWhyIsThisSoLong
  && SuperLongConditionOnAnotherLine
  && SuperLongConditionOnThirdLineSheesh)
{
    // launch_missiles();
}

줄 끝에 백슬래시를 배치합니다.

alert("Please Select file\
 to delete");

편집 행 끝 문자를 사용할 수 없으므로 ECMAScript 문자열의 일부가 아닙니다.

'LineTerminator' 문자는 백슬래시 앞에 있더라도 문자열 리터럴에 표시할 수 없습니다.\ 은 " " " " \n ★★★★★★★★★★★★★★★★★」\u000A.

따라서 문자열 연결을 사용하는 것이 더 좋습니다.


업데이트 2015-01-05 ECMAScript5의 문자열 리터럴에서는 다음 구문을 사용할 수 있습니다.

행 끝 문자는 빈 문자 시퀀스를 생성하는 LineContinuation의 일부를 제외하고 문자열 리터럴에 표시할 수 없습니다.행 끝 문자를 문자열 리터럴의 String 값에 포함시키는 올바른 방법은 다음과 같은 이스케이프 시퀀스를 사용하는 것입니다.\n ★★★★★★★★★★★★★★★★★」\u000A.

ECMAScript 6에서는 템플릿 문자열이 도입되었습니다.

템플릿 문자열은 내장된 식을 허용하는 문자열 리터럴입니다.여러 줄 문자열 및 문자열 보간 기능을 사용할 수 있습니다.

예를 들어 다음과 같습니다.

alert(`Please Select file   
to delete`);

경고:

Please Select file   
to delete

줄을 두 조각으로 나누다

alert ("Please select file " +
       "to delete");

주목해야 할 흥미로운데요.시행된 것:

alert("Some \
    string \
    wrapped \
    across \
    mutliples lines.")

그리고 이것은 성공했습니다.그러나 우연히! 마지막 백슬래시 뒤에 공백 문자가 있었습니다(다른 백슬래시는 모두 줄 끝에 있음).이 때문에 Javascript에 오류가 발생했습니다!이 공간을 제거하면 오류가 수정됩니다.

이것은 Cordova를 사용하는 Android용 ADT입니다.

그냥 사용하시면 됩니다.

1:  alert("Please select file" +
2:        " to delete");

그러면 되겠군요.

백슬래시 연산자를 신뢰할 수 없습니다.브라우저 콘솔에 이 기능을 붙여넣어 보십시오.

function printString (){
  const s = "someLongLineOfText\
  ThatShouldNotBeBroken";
  console.log(s);
}

그리고 나서 실행해.함수 내에는 기존의 (올바른) 들여쓰기가 있기 때문에 두 개의 추가 공간이 포함되므로 다음과 같은 결과가 발생합니다.someLongLineOfText ThatShouldNotBeBroken.

이 경우 백틱을 사용해도 도움이 되지 않습니다.이러한 유형의 문제를 방지하려면 항상 연결 "+" 연산자를 사용하십시오.

긴 문자열 상수를 논리 청크로 분할하여 어레이에 할당할 수 있습니다.그럼 다음 순서를 수행합니다.join빈 문자열을 딜리미터로 지정합니다.

var stringArray = [
  '1. This is first part....',
  '2. This is second part.....',
  '3. Finishing here.'
];

var bigLongString = stringArray.join('');
console.log(bigLongString);

출력은 다음과 같습니다.

  1. 이게 첫 번째 파트입니다.2부입니다. 3부. 마무리.

이 방법에는 약간의 퍼포먼스가 있습니다만, 코드의 가독성과 유지보수가 용이합니다.

여러 줄로 분할된 문자열이 문제를 일으킬 경우 VSCode 사용자에게 좋은 해결책이 될 수 있습니다(긴 JWT 토큰을 테스트해야 할 때 이 문제에 직면했으며 템플릿 리터럴을 사용해도 문제가 해결되지 않았습니다).

위의 몇 가지 제안을 시도했지만 크롬 코드 검사기에서 ILLATION 문자 경고를 받았습니다.아래는 나에게 효과가 있었다(단, Chrome에서만 테스트 완료).

alert('stuff on line 1\\nstuff on line 2);

이렇게 나오는데...

stuff on line 1
stuff on line 2

이중 백슬래시 주의!!...이게 중요한 것 같아!

코드를 수동으로 중단할 필요가 없습니다.끊을 위치에 \n만 추가합니다.

alert ("Please Select file \n to delete");

다음과 같은 경고가 표시됩니다.

Please select file 
to delete.

언급URL : https://stackoverflow.com/questions/508269/how-do-i-break-a-string-across-more-than-one-line-of-code-in-javascript

반응형