JavaScript에서 하나 이상의 코드 라인에서 문자열을 깨뜨리는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/508269

  •  21-08-2019
  •  | 
  •  

문제

JavaScript에는 코드 라인을 분해하여 새로운 라인에 있음에도 불구하고 연속적으로 읽을 수 있도록 캐릭터가 있습니까?

...와 같은 ....

1. alert ( "Please Select file   
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의 문자열 리터럴 언급 된 구문 허용 :

라인 터미네이터 문자는 문자열 문자로 표시 될 수 없습니다. 선천성 빈 문자 시퀀스를 생성합니다. 라인 터미네이터 문자가 문자열 리터럴의 문자열 값의 일부가되는 올바른 방법은 다음과 같은 이스케이프 시퀀스를 사용하는 것입니다. \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");

작동해야합니다

긴 문자열을 논리적 덩어리로 상수로 깨고 배열에 할당 할 수 있습니다. 그런 다음 a 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. 여기서 마무리.

이런 식으로 약간의 성능이 적용되지만 코드 가독성과 유지 관리가 있습니다.

위의 많은 제안을 시도했지만 Chrome Code Inspector에서 불법적 인 캐릭터 경고를 받았습니다. 다음은 저를 위해 일했습니다 (그래도 크롬에서만 테스트되었습니다!)

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.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top