텍스트 영역에 텍스트가 있고 .value 속성을 사용하여 읽습니다.
이제 Enter정규식으로 .replace를 사용하여 텍스트에서 모든 줄 바꿈 (누를 때 생성되는 문자)을 제거하고 싶습니다 .하지만 정규식에서 줄 바꿈을 어떻게 표시합니까?
그렇게 할 수 없다면 다른 방법이 있습니까?
답변
이것은 아마도 FAQ 일 것입니다. 어쨌든 줄 바꿈 (더 나은 줄 바꿈)은 캐리지 리턴 ( \r
이전 Mac의 경우 CR, ), 줄 바꿈 ( \n
Linux의 경우 \r\n
Unics의 경우 LF , ) 또는 CR 다음에 LF ( , WinDOS의 경우) 중 하나 일 수 있습니다. (다른 답변과 달리 이것은 문자 인코딩과 관련 이 없습니다 .)
따라서 RegExp
모든 변형과 일치 하는 가장 효율적인 리터럴은
/\r?\n|\r/
문자열의 모든 줄 바꿈을 일치 시키려면 전역 일치를 사용하십시오.
/\r?\n|\r/g
각기. 그런 다음 replace
몇 가지 다른 답변에서 제안한대로 방법을 진행하십시오 . (줄 바꿈 문자를 제거 하지 않고 공백 문자와 같은 다른 공백 문자로 바꾸면 단어가 그대로 유지됩니다.)
답변
줄 바꿈을 찾는 방법은 운영 체제 인코딩에 따라 다릅니다. Windows는 \r\n
그랬지만 Linux는 사용 \n
하고 Apple은 사용합니다 \r
.
JavaScript 줄 바꿈 에서 이것을 발견했습니다 .
someText = someText.replace(/(\r\n|\n|\r)/gm, "");
모든 종류의 줄 바꿈을 제거해야합니다.
답변
var str = " \n this is a string \n \n \n"
console.log(str);
console.log(str.trim());
String.trim()
줄 바꿈을 포함하여 문자열의 시작과 끝에서 공백을 제거합니다.
const myString = " \n \n\n Hey! \n I'm a string!!! \n\n";
const trimmedString = myString.trim();
console.log(trimmedString);
// outputs: "Hey! \n I'm a string!!!"
다음은 바이올린 예제입니다 : http://jsfiddle.net/BLs8u/
노트! 문자열 중간의 줄 바꿈이나 공백이 아닌 문자열의 시작과 끝만 자릅니다.
답변
줄 \n
바꿈 및 \r
캐리지 리턴을 위해 정규 표현식에서 사용할 수 있습니다 .
var str2 = str.replace(/\n|\r/g, "");
다른 운영 체제는 다양한 혼합물로, 다른 라인 엔딩을 사용 \n
하고 \r
. 이 정규식은 모두를 대체합니다.
답변
CR 및 LF를 포함한 모든 제어 문자를 제거하려면 다음을 사용할 수 있습니다.
myString.replace(/[^\x20-\x7E]/gmi, "")
인쇄 할 수없는 모든 문자를 제거합니다. 이것은 모두 ASCII HEX 공간 내에 있지 않은 문자 0x20-0x7E
입니다. 필요에 따라 HEX 범위를 자유롭게 수정하십시오.
답변
가장 간단한 해결책은 다음과 같습니다.
let str = '\t\n\r this \n \t \r is \r a \n test \t \r \n';
str.replace(/\s+/g, ' ').trim();
console.log(str); // logs: "this is a test"
.replace()
와 /\s+/g
정규 표현식이 변화하고 모든 그룹 전체 문자열에서 하나의 공간으로 화이트 스페이스 문자를 우리는 .trim()
결과는 이전과 텍스트 후 모든 초과 화이트 스페이스를 제거합니다.
공백 문자로 간주됩니다 :
[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
답변
var str = "bar\r\nbaz\nfoo";
str.replace(/[\r\n]/g, '');
>> "barbazfoo"