문자열에서 모든 줄 바꿈을 제거하는 방법
텍스트 영역에 텍스트가 있고 .value 속성을 사용하여 읽습니다.
이제 Enter정규식으로 .replace를 사용하여 텍스트에서 모든 줄 바꿈 (누를 때 생성되는 문자)을 제거하고 싶습니다 .하지만 정규식에서 줄 바꿈을 어떻게 표시합니까?
그렇게 할 수 없다면 다른 방법이 있습니까?
이것은 아마도 FAQ 일 것입니다. 어쨌든 줄 바꿈 (더 나은 줄 바꿈)은 캐리지 리턴 (CR,, \r
이전 Mac의 경우), 줄 바꿈 (LF,, \n
Linux를 포함한 \r\n
Unices의 경우) 또는 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, "");
모든 종류의 줄 바꿈을 제거해야합니다.
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, "")
인쇄 할 수없는 모든 문자를 제거합니다. 이는 모든 문자 NOT 내에서 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"
줄 바꿈 문자를 제거하려면 다음을 사용하십시오.
yourString.replace(/\r?\n?/g, '')
그런 다음 문자열을 잘라서 앞뒤 공백을 제거 할 수 있습니다.
yourString.trim()
PointedEars가 제공하는 답변은 우리 모두에게 필요한 모든 것입니다. 그러나 Mathias Bynens의 답변에 따라 Wikipedia 여행을 갔고 https://en.wikipedia.org/wiki/Newline을 찾았습니다 .
다음은 위의 위키 페이지가이 답변 당시 "새 줄"로 간주하는 모든 것을 구현하는 드롭 인 기능입니다.
케이스에 맞지 않는 물건을 제거하면됩니다. 또한 성능을 찾고 있다면 이것이 아닐 수도 있지만 어떤 경우에도 작업을 수행하는 빠른 도구의 경우 유용합니다.
// replaces all "new line" characters contained in `someString` with the given `replacementString`
const replaceNewLineChars = ((someString, replacementString = ``) => { // defaults to just removing
const LF = `\u{000a}`; // Line Feed (\n)
const VT = `\u{000b}`; // Vertical Tab
const FF = `\u{000c}`; // Form Feed
const CR = `\u{000d}`; // Carriage Return (\r)
const CRLF = `${CR}${LF}`; // (\r\n)
const NEL = `\u{0085}`; // Next Line
const LS = `\u{2028}`; // Line Separator
const PS = `\u{2029}`; // Paragraph Separator
const lineTerminators = [LF, VT, FF, CR, CRLF, NEL, LS, PS]; // all Unicode `lineTerminators`
let finalString = someString.normalize(`NFD`); // better safe than sorry? Or is it?
for (let lineTerminator of lineTerminators) {
if (finalString.includes(lineTerminator)) { // check if the string contains the current `lineTerminator`
let regex = new RegExp(lineTerminator.normalize(`NFD`), `gu`); // create the `regex` for the current `lineTerminator`
finalString = finalString.replace(regex, replacementString); // perform the replacement
};
};
return finalString.normalize(`NFC`); // return the `finalString` (without any Unicode `lineTerminators`)
});
정규 표현식의 줄 바꿈은 \ n이므로 스크립트는
var test = 'this\nis\na\ntest\nwith\newlines';
console.log(test.replace(/\n/g, ' '));
다음 코드를 시도하십시오. 모든 플랫폼에서 작동합니다.
var break_for_winDOS = 'test\r\nwith\r\nline\r\nbreaks';
var break_for_linux = 'test\nwith\nline\nbreaks';
var break_for_older_mac = 'test\rwith\rline\rbreaks';
break_for_winDOS.replace(/(\r?\n|\r)/gm, ' ');
//output
'test with line breaks'
break_for_linux.replace(/(\r?\n|\r)/gm, ' ');
//output
'test with line breaks'
break_for_older_mac.replace(/(\r?\n|\r)/gm, ' ');
// Output
'test with line breaks'
내 대답을 추가하고 있습니다. 위의 애드온입니다. 모든 / n 옵션을 시도했지만 작동하지 않았습니다. 텍스트가 이중 슬래시로 서버에서 나오는 것을 보았으므로 다음을 사용했습니다.
var fixedText = yourString.replace(/(\r\n|\n|\r|\\n)/gm, '');
참고 URL : https://stackoverflow.com/questions/10805125/how-to-remove-all-line-breaks-from-a-string
'Programming' 카테고리의 다른 글
Bash에서 배열의 요소를 어떻게 결합 할 수 있습니까? (0) | 2020.02.26 |
---|---|
마이크로 초 구성 요소없이 문자열로 파이썬 날짜 시간 (0) | 2020.02.26 |
JavaScript의 For..In 루프-키 값 쌍 (0) | 2020.02.26 |
목록에서 max () / min ()을 사용하여 반환 된 최대 또는 최소 항목의 인덱스 가져 오기 (0) | 2020.02.26 |
./configure : / bin / sh ^ M : 잘못된 인터프리터 (0) | 2020.02.26 |