JavaScript에서 하나 이상의 코드 라인에서 문자열을 깨뜨리는 방법은 무엇입니까?
-
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);
출력은 다음과 같습니다.
- 이것은 첫 번째 부분입니다 .... 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.