programing

node.js에서 다중 줄 문자열을 수행하려면 어떻게 해야 합니까?

javajsp 2023. 8. 22. 21:57

node.js에서 다중 줄 문자열을 수행하려면 어떻게 해야 합니까?

node.js의 등장으로 자바스크립트에서 다중 줄 문자열이 더욱 필요하게 되었습니다.

  1. 노드에서 이 작업을 수행하는 특별한 방법이 있습니까?JS, 브라우저에서 작동하지 않더라도?
  2. 지원할 수 있는 계획이나 기능 요청이 있습니까?

당신이 사용할 수 있다는 것을 이미 알고 있습니다.\n\모든 줄의 끝에서, 그것은 내가 원하는 것이 아닙니다.

노드 v4 및 노드의 현재 버전

ES6 이후, 새로운 "템플릿 리터럴" 본질형이 자바스크립트에 추가되었으며 ("'""로 표시됨) 다중 줄 문자열을 구성하는 데 사용될 수 있습니다.

`this is a 
single string`

값은 다음과 같습니다.'this is a\nsingle string'.

첫 번째 의 끝에 있는 새 줄이 결과 문자열에 포함됩니다.

가 문자열 수할 수 리터럴이 되었습니다.util.format또는 다음과 같은 다른 템플릿 작성자:

let num=10;

console.log(`the result of ${num} plus ${num} is ${num + num}.`);

콘솔에 "10 더하기 10의 결과는 20"이라고 인쇄됩니다.

이전 버전의 노드

이전 버전의 노드에서는 다음과 같은 여러 줄 문자열을 작성할 수 있는 "줄 연속" 문자를 사용할 수 있습니다.

'this is a \
single string'

값은 다음과 같습니다.'this is a single string'.

첫 번째 줄 끝에 있는 새 줄은 결과 문자열에 포함되지 않습니다.

여러 문자열은 현재 JavaScript(ES6 이후)의 일부이며 node.js v4.0.0 이상에서 지원됩니다.

var text = `Lorem ipsum dolor 
sit amet, consectetur 
adipisicing 
elit.  `;

console.log(text);

다중 줄 문자열을 의미하는 경우 정확히 무엇을 찾고 계십니까?

다음과 같은 것을 찾고 계십니까?

var str = "Some \
    String \
    Here";

어떤 것이 "Some String Here"로 인쇄됩니까?

만약 그렇다면, 위의 자바스크립트는 유효하지만, 이것은 그렇지 않다는 것을 명심하세요:

var str = "Some \ 
    String \
    Here";

뭐가 달라요? 한 칸\디버깅 재미있게 하세요.

수락된 답변 외에도:

`this is a 
single string`

이 값은 다음과 같습니다. \n\n단일 문자열입니다.

문자열 보간을 사용하지만 새 줄이 없으면 일반 문자열처럼 백슬래시를 추가합니다.

`this is a \
single string`

=> '단일 문자열입니다.'

수동 공백은 필요하지만 다음과 같습니다.

`this is a\
single string`

=> '단일 문자열입니다.'

사람들이 여기에 게시한 것 외에도, 저는 연결이 현대 자바스크립트 VM에 가입하는 것보다 훨씬 빠를 수 있다고 들었습니다.의미:

var a = 
[ "hey man, this is on a line",
  "and this is on another",
  "and this is on a third"
].join('\n');

다음보다 느림:

var a = "hey man, this is on a line\n" + 
        "and this is on another\n" +
        "and this is on a third";    

어떤 경우에는.http://jsperf.com/string-concat-versus-array-join/3

또 다른 예로, 저는 이것이 커피스크립트에서 더 매력적인 특징 중 하나라고 생각합니다.네, 네, 알아요, 싫어하는 사람들이 싫어할 거예요.

html = '''
       <strong>
         cup of coffeescript
       </strong>
       '''

특히 HTML 스니펫에 적합합니다.사용해야하는 이유는 아니지만 꼭 ecmaland에 착륙했으면 좋겠습니다 :-(

조쉬

node.js에 대한 mstring 모듈을 살펴봅니다.

이것은 자바스크립트로 여러 줄의 문자열을 만들 수 있는 간단한 작은 모듈입니다.

이렇게 하면 됩니다.

var M = require('mstring')

var mystring = M(function(){/*** Ontario Mining and Forestry Group ***/})

갖기 위해

mystring === "Ontario\nMining and\nForestry\nGroup"

그리고 그것이 거의 다입니다.

작동 방식
Node.js에서 다음을 호출할 수 있습니다..toString함수의 메서드이며 주석을 포함한 함수 정의의 소스 코드를 제공합니다.정규식은 주석의 내용을 가져옵니다.

네, 해킹입니다.도미닉 타르의 일회용 댓글에 영감을 받았습니다.


참고: 모듈(2012/13/11 기준)은 마감 전에 공백을 허용하지 않습니다.***/그래서 당신은 스스로 그것을 해킹해야 할 것입니다.

CoffeeScript를 살펴보십시오. http://coffeescript.org

이것은 다중 줄 문자열, 보간, 배열 이해 및 많은 다른 좋은 것들을 지원합니다.

io.js를 사용하는 경우 ECMA스크립트 6에서와 마찬가지로 여러 줄 문자열을 지원합니다.

var a =
`this is
a multi-line
string`;

자세한 내용은 http://davidwalsh.name/es6-io 의 "New String Methods"를 참조하고 호환성 추적은 http://kangax.github.io/compat-table/es6/ 의 "http://field string"을 참조하십시오.

Vanilla Javascipt는 다중 줄 문자열을 지원하지 않습니다.요즘은 언어 사전 처리가 가능한 것으로 밝혀지고 있습니다.

이 중 가장 인기 있는 CoffeeScript는 이 기능을 가지고 있지만, 그것은 최소한의 것이 아니라 새로운 언어입니다.구글의 트레이서 컴파일러는 언어에 새로운 기능을 슈퍼셋으로 추가하지만, 다중 줄 문자열은 추가된 기능 중 하나라고 생각하지 않습니다.

저는 여러 줄의 문자열과 몇 가지 다른 기능을 지원하는 자바스크립트의 최소 슈퍼셋을 만들고 싶습니다.저는 커피 스크립트를 위한 초기 컴파일러를 쓰기 전에 이 작은 언어를 시작했습니다.저는 이번 여름에 그것을 끝낼 계획입니다.

사전 컴파일러가 옵션이 아닌 경우 HTML의 스크립트 태그에 여러 줄 데이터를 저장하지만 평가되지 않도록 사용자 지정 유형을 지정하는 스크립트 태그 해킹도 있습니다.그런 다음 나중에 Javascript를 사용하여 스크립트 태그의 내용을 추출할 수 있습니다.

또한 소스 코드에서 줄의 끝에 \를 놓으면 새 줄이 없는 것처럼 무시됩니다.새 줄을 사용하려면 줄을 "\n\"로 종료해야 합니다.

언급URL : https://stackoverflow.com/questions/6220420/how-do-i-do-a-multi-line-string-in-node-js