텍스트 영역에서 새 줄을 나타내는 문자
간단하지만 교차 플랫폼 변형을 포착하고 있는지 확인하고 싶습니다.
저는 텍스트 영역에 입력 된 새 줄을 [쉼표]로 변환하여 출력이 한 줄로 표현 될 수 있도록하고 싶습니다. 제 질문은 ...
현재 Google 크롬에서 보내는 값을 볼 때 \r\n
새 줄에 사용 됩니다. 대체하면 \r\n
Windows 7의 크롬에서 작동한다는 것을 알고 있지만 다른 플랫폼은 어떻습니까? 다른 브라우저가 텍스트 영역 안에 새 줄로 삽입하는 것에 대한 변형이 있습니까?
HTML 사양에 따라 브라우저는 CR LF ( \r\n
) 에 대한 사용자 입력에서 줄 바꿈을 정규화해야하며 , 어떤 브라우저에서도이 문제가 발생한다고 생각하지 않습니다. 참조 : 조항 17.13.4 HTML 4.01 사양의 양식 콘텐츠 유형 .
HTML5 초안에서는 양식이 제출 될 때 서버 측 양식 처리기로 전송되는 데이터뿐만 아니라 브라우저 내부의 프로세스도 처리하기 때문에 상황이 더 복잡합니다. 그들 (및 브라우저 관행)에 따르면 textarea
요소 값은 세 가지 변형으로 존재합니다.
- 사용자가 입력 한 원시 값, 정규화되지 않음. CR, LF 또는 CR LF 쌍을 포함 할 수 있습니다.
- "API 값"이라고하는 내부 값. 여기서 줄 바꿈은 LF (전용)로 정규화됩니다.
- 인터넷 규약에 따라 줄 바꿈이 CR LF 쌍으로 정규화되는 제출 값.
모든 플랫폼에서 모든 텍스트 영역에 대해 웹 양식의 텍스트 영역에 대해 구체적으로 이야기 \r\n
하면 작동합니다.
다른 것을 사용하면 Windows 플랫폼에서 잘라 내기 및 붙여 넣기에 문제가 발생합니다.
줄 바꿈은 양식이 제출 될 때 Windows 브라우저에 의해 표준화되지만, 줄 바꿈을 사용하여 양식을 브라우저로 보내면 \n
예를 들어 메모장과 텍스트 영역 사이에 텍스트가 올바르게 복사 및 붙여 넣기되지 않음을 알 수 있습니다.
흥미롭게도 Unix 라인 종료 규칙에도 불구하고 \n
HTTP, SMTP, POP3, IMAP 등을 포함한 대부분의 텍스트 기반 네트워크 프로토콜의 표준은 여전히 \r\n
. 예, 그다지 말이되지 않을 수도 있지만 그것은 여러분을위한 역사이자 진화하는 표준입니다!
- Line Feed and Carriage Return
이러한 HTML 엔터티 는 텍스트 영역 안에 새 줄 또는 캐리지 리턴을 삽입합니다.
HTML5 사양 에 따르면 textarea 요소의 value 속성은 개행 문자에 대해 '\ r \ n'을 반환해야합니다.
요소의 값 은 다음 변환이 적용된 요소의 원시 값으로 정의됩니다.
"LF"(U + 000A) 문자가 뒤 따르지 않는 "CR"(U + 000D) 문자와 "CR"(U + 000A) 문자가 앞에 나오지 않는 모든 "CR"(U + 000A) 문자를 교체합니다. U + 000D) 문자, U + 000D CARRIAGE RETURN "CRLF"(U + 000A) 문자 쌍으로 구성된 2 자 문자열.
'value'에 대한 링크를 따라 가면 자바 스크립트에서 액세스 한 값 속성을 참조 함을 분명히 알 수 있습니다.
양식 컨트롤에는 값과 검사가 있습니다. (후자는 입력 요소에서만 사용됩니다.) 이들은 사용자가 컨트롤과 상호 작용하는 방식을 설명하는 데 사용됩니다.
그러나 5 개 주요 브라우저 (Windows 사용, 2015 년 11 월 27 일 사용)에서 '\ r \ n'이 텍스트 영역에 기록되면 '\ r'이 제거됩니다. (테스트하려면 : var e = document.createElement ( 'textarea'); e.value = '\ r \ n'; alert (e.value == '\ n');) v9부터 IE에 해당됩니다. 그 전에 IE는 '\ r \ n'을 반환하고 '\ r'과 '\ n'을 모두 '\ r \ n'(HTML5 사양)으로 변환했습니다. 그래서 ... 혼란 스러워요.
안전을 위해 일반적으로 정규 표현식에서 '\ n'대신 '\ r? \ n'을 사용하는 것으로 충분하지만 개행 시퀀스를 알아야하는 경우 앱에서 위와 같은 테스트를 수행 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/14217101/what-character-represents-a-new-line-in-a-text-area
'Programing' 카테고리의 다른 글
Fragment가 교체되어 백 스택에 배치 (또는 제거)되면 메모리에 유지됩니까? (0) | 2020.10.30 |
---|---|
JS 객체의 키 (문자열) 길이에 제한이 있습니까? (0) | 2020.10.30 |
pyCharm이 Python 가져 오기를 숨기는 것을 중지 (펼치기)하려면 어떻게해야합니까? (0) | 2020.10.30 |
Swift IF LET는 어떻게 평가 되나요? (0) | 2020.10.30 |
날짜가 1970 년 1 월 1 일부터 계산되는 이유는 무엇입니까? (0) | 2020.10.30 |