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);
출력은 다음과 같습니다.
- 이게 첫 번째 파트입니다.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
'sourcecode' 카테고리의 다른 글
논리 연산자, | 또는 OR? (0) | 2022.10.07 |
---|---|
개체가 목록인지 태플인지(문자열이 아님) 확인하는 방법 (0) | 2022.10.07 |
MariaDB 10.1은 원칙 2.5와 호환됩니까? (0) | 2022.10.07 |
문자열 끝에서 콤마를 삭제하려면 어떻게 해야 하나요? (0) | 2022.10.07 |
vuetify 배지에서 작동하지 않는 클릭 작업 (0) | 2022.10.07 |