> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 라인 엔딩

JavaScript의 라인 엔딩

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-03-08 00:49:18
원래의
926명이 탐색했습니다.

Line endings in Javascript

JavaScript의 라인 엔딩 나는 오늘 많은 것을 자바 스크립트로 선 엔딩과 싸우고 결국 공유 할 가치가있는 몇 가지 결과를 보냈다. 아시다시피, 겸손한 라인 브레이크는 실제로 운영 체제가 파괴를 수행하는 것에 따라 세 가지 형태를 가지고 있습니다. Unix Machines에서는 단일 Newline 캐릭터 'N'이 작업을 수행합니다. Mac에서는 캐리지 리턴‘R’이 사용됩니다. DOS와 Windows는‘RN’을 모두 사용합니다. 무엇을 찾아야할지 모르면 열심히 물릴 수있는 상대적으로 미묘한 문제 중 하나입니다.

오늘, 나는 단일 신생을 텍스토리 내에서 두 배의 최신 라인으로 바꾸는 JavaScript 기능을 구축하는 간단한 문제를 겪었습니다. 나의 첫 번째 시도는 다음과 같이 보였다 :

var doublenewlinesre = /([^n]) n ([^n]) /g; 함수 doublenewlines (obj) { obj.value = obj.value.replace (Doublenewlinesre, "$ 1nn $ 2"); } 이중 신자 라인

위의 코드는 단순한 정규 표현식을 사용하여 새로운 라인이 아닌 무언가의 모든 인스턴스를 찾은 다음 Newline이 뒤 따른 다음 신축이 아닌 다른 것을 찾습니다. 이 패턴의 인스턴스는 하나 대신 중간에 두 개의 신형으로 동일한 패턴으로 대체됩니다. 이것은 Firefox가 어떤 플랫폼을 실행하든 신약을 'N'로 취급하기 때문에 Windows, Linux 및 Mac의 Firefox에서 잘 작동했습니다. 브라우저는 각각 'rn'과‘r’을 사용하기 때문에 Windows의 경우 IE와 Macintosh의 경우 깨졌습니다. 충분히 공정합니다. 이 문제에 대한 일반적인 솔루션은 세 가지 조합 각각을 선호도의 단일 엔딩 (내 경우 'N')으로 바꾸어 변환을 실행하기 전에 라인 엔딩을 정상화하는 것입니다. 기능에 대한 두 번째 시도는 다음과 같습니다 함수 doublenewlines (obj) { obj.value = obj.value.replace (/(rn | r | n)/g, 'n'); obj.value = text.replace (Doublenewlinesre, "$ 1nn $ 2"); }

그것은 작동하지 않았습니다. 많은 헤드 스크래치, 디버깅 및 경고 상자로 주위를 파고 난 후에는 마침내 문서화되지 않은 거의 마음을 모호하게 모호하게 모호하게 모호하게 모호한 인터넷 익스플로러 : 입력 객체의 값 속성에 문자열을 할당 할 때, 예를 들어 멋진 'n'라인 엔딩을 플랫폼 선호도로 조용히 변환합니다. Microsoft의 문서는 이것에 주목하지 못하지만 인터넷 익스플로러의 Windows 및 Mac 버전에서 이런 일이 발생한다는 것을 확인했습니다. bizzarely, 당신이 숨겨진 양식 필드 객체의 값 속성에 할당하면 변환이 발생하지 않습니다. 라인 엔딩은 텍스트 영역에 할당하는 경우에만 변경됩니다.

다음 코드는 방금 나열된 코드와 동일하게 보이지만 내가 원하는 것을 정확하게 수행합니다.함수 doublenewlines (obj) { var text = obj.value; text = text.replace (/(rn | r | n)/g, 'n'); obj.value = text.replace (Doublenewlinesre, "$ 1nn $ 2"); }

정규화 된 버전은 TextArea Object의 값 속성에 직접 할당되지 않고 변수에 할당되므로 정상적으로 작동하므로 IE의 자동 라인 엔드 변환이 스크립트가 끝날 때까지 지연되고 두 번째 정규 표현으로 혼란을 일으키지 않습니다.
. 마지막으로 스타일에 대한 메모. 문제를 해결하기 위해 신속하게 작업하기보다는 코드 재사용에 대해 생각하고 있다면 아마도 다음과 같은 것을 생각해 냈을 것입니다. 함수 doublenewlines (텍스트) { text = text.replace (/(rn | r | n)/g, 'n'); return text.replace (Doublenewlinesre, "$ 1nn $ 2"); } 이중 신자 라인

OnClick 핸들러에 약간 더 많은 코드가 필요하지만 문자열 작동 만 추상화하면 이상한 라인 엔드 전환 문제를 완전히 피했을 것입니다. 그래도 적어도 나는 IE의 작은 기발한 사람을 이해하면서 멀어졌습니다.

JavaScript의 라인 엔딩에 대한 자주 묻는 질문 (FAQ) javaScript에서 줄 엔딩의 중요성은 무엇입니까?

JavaScript의 라인 엔딩은 성명서의 끝을 의미하므로 중요합니다. JavaScript에서 각 진술은 세미콜론 (;)으로 분리됩니다. 그러나 JavaScript 통역사는 누락 된 경우 세미콜론을 자동으로 삽입 할 수있을 정도로 똑똑합니다. 이 기능은 자동 세미콜론 삽입 (ASI)이라고합니다. 그럼에도 불구하고, 잠재적 인 오류 나 예기치 않은 결과를 피하기 위해 세미콜론을 수동으로 포함시키는 것이 좋은 관행으로 간주됩니다.
JavaScript에서 새 줄을 추가 할 수 있습니까?

JavaScript에서는 탈출 시퀀스를 사용하여 새 라인을 추가 할 수 있습니다. 새 라인의 탈출 시퀀스는‘n’입니다. 예를 들어, 두 문장 사이에 새로운 줄을 추가하려면“Hellonworld”와 같이 할 수 있습니다. 이 문자열이 인쇄되면 "Hello"및 "World"는 별도의 줄에있을 것입니다.

JavaScript에서‘N’과‘RN’의 차이점은 무엇입니까?

javaScript에서‘N’과‘RN’은 새 선을 만드는 데 사용됩니다. 그러나 운영 체제에 따라 다르게 사용됩니다. ‘N’은 유닉스 기반 시스템 (Linux 및 Mac)에서 Newline 문자로 사용되며‘RN’은 Windows에서 사용됩니다. 'R'문자는 캐리지 리턴을 나타내며, 다음 줄로 전진하지 않고 커서를 라인의 시작으로 이동합니다.

JavaScript에서 여러 줄 브레이크를 추가 할 수 있습니까?

JavaScript에서 여러 줄 브레이크를 추가하려면 'N'탈출 시퀀스를 여러 번 사용할 수 있습니다. 예를 들어,“Hellonnworld”는“Hello”와“World”사이에 두 개의 줄 브레이크가 추가됩니다. javaScript에서 라인 브레이크에 html 태그를 사용할 수 있습니까?

예, HTML 컨텐츠로 작업 할 때 JavaScript의 라인 브레이크에 HTML 태그를 사용할 수 있습니다. ‘ world"는 HTML 문서에 표시 될 때 "hello"와 "World"사이의 라인 브레이크를 추가합니다.

JavaScript 주석에서 줄 종말의 역할은 무엇입니까?


JavaScript에서 라인 엔딩은 주석에서 중요한 역할을합니다. JavaScript의 단일 라인 댓글은‘//’으로 시작하여 줄 브레이크에서 끝납니다. 같은 줄의‘//’이후의 모든 것은 주석으로 간주되며 JavaScript 통역사에 의해 무시됩니다.
JavaScript 문자열에서 선 엔딩을 어떻게 처리 할 수 ​​있습니까?

JavaScript 문자열에서는‘n’탈출 시퀀스를 사용하여 선 엔딩을 처리 할 수 ​​있습니다. 이 시퀀스는 라인 브레이크를 효과적으로 생성하여 줄 브레이크를 생성합니다.

ASI (Automatic Semicolon Insertion)는 어떻게 라인 끝을 처리합니까?

JavaScript에서 자동 세미콜론 삽입 (ASI)은 대부분의 라인 용 terminators 후에 세미 콜론을 자동으로 삽입하는 메커니즘입니다. 즉, 성명서 끝에 세미콜론을 넣는 것을 잊어 버려도 JavaScript는 여전히 올바르게 해석 할 것입니다.

라인 엔딩을 사용하여 JavaScript 코드를 형식화 할 수 있습니까?

예, 선 엔딩을 사용하여 Javascript 코드를 포맷 할 수 있습니다. 라인 엔딩을 올바르게 사용하면 코드가 더 읽기 쉽고 유지 관리가 쉬울 수 있습니다. 각 명령문에 대해 또는 코드 블록 (함수 또는 루프와 같은) 후에 새로운 줄을 시작하는 것이 일반적입니다.

JavaScript 코드의 실행에 어떤 영향을 미치는가? 그러나 자동 세미콜론 삽입 (ASI) 측면에서 코드 실행에도 영향을 줄 수 있습니다. 라인 엔딩이 잘못 배치되면 세미콜론의 자동 삽입으로 인해 예상치 못한 결과가 발생할 수 있습니다. 따라서 라인 결말을 올바르게 이해하고 사용하는 것이 중요합니다.

위 내용은 JavaScript의 라인 엔딩의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿