2017-03-26 7 views
0

자바 스크립트를 배우는 동안 한 가지 문제가 발생합니다. 두 문자열 사이에 여러 공백을 추가하면 모든 공백이 단일 공백으로 변환됩니다. 연결 연산자 (+)를 사용하여 두 문자열 사이에 공백을 여러 개 추가하려고했습니다. 또한 첫 번째 문자열 다음에 두 번째 문자열 앞에 여러 공백을 추가하여 시도했지만 동일한 결과가 나올 때마다 시도했습니다. 두 개의 문자열은 그 사이에 하나의 공백으로 구분됩니다.JavaScript에서 두 문자열 사이에 여러 공백이 추가 된 경우 코드 실행 중에 왜 공백으로 변환됩니까?

나는 그 원인을 찾았지만 모든 사람들은 JavaScript의 일부 정규 표현식 및 문자열 대체 기능을 사용하여이 문제를 극복하는 방법을 알려 왔습니다. 나는이 문제의 근본 원인을 원한다.

나도 알아 PHP. PHP에서이 문제가 발생하지 않습니다. PHP 문자열은 개발자가 예상 한대로 동작합니다. 사이에 추가 할 공백의 수에 관계없이 문자열 앞에 또는 후에 공백이 추가됩니다. 왜 JavaScript에 추가되지 않습니까?

누군가이 경우 사이의 원인과 차이점을 설명해주십시오.

"John" + "    " + "Doe"; 

"John   " + "   " + "  Doe"; 

"John" + "  " + "   Doe"; 

"John    Doe"; 

내가 때마다있어 출력은 다음과 같습니다 : John Doe

+1

이 코드는 그대로 작동하지 않습니다. 누락 된 부분은 당신이 HTML로 출력한다는 것입니다 * ...? 그렇다면 PHP는 실제로 그런 식으로 행동합니다. – deceze

+0

... PHP (또는 JavaScript)가 아니기 때문에 여러 공간을 출력합니다. HTML이 정의 된 방법이기 때문에 하나의 공간 만 렌더링됩니다. –

+1

현재이 질문에 답할 수는 없지만 다음 문자열로 무엇을하고 있는지 언급해야합니다. 그것이 HTML로 들어가면, 그 공간은 정말로 붕괴 될 것입니다. 두 가지 옵션이 있습니다 : ' '을 사용하거나 더 나은 방법으로 일부 CSS로 작업을 마무리하여'white-space' 속성을'pre'로 설정하십시오. – Manngo

답변

3

이유는 자바 스크립트를하지만, HTML 아니다

나는 다음과 같은 표현을 시도했다. 표준에 따르면 여러 공백 (공백, 줄 바꿈 등)이 단일 공간으로 축소됩니다.

이 문제를 방지하려면  을 사용하십시오.