[JQUERY] 하나의 공간을 여러 공백을 대체하는 정규 표현식
JQUERY하나의 공간을 여러 공백을 대체하는 정규 표현식
해결법
-
1.당신은 또한 덮개 탭, 줄 바꿈 등 원하는 것을 감안할 때, 단지 대체 \ S \ S + '로 :
당신은 또한 덮개 탭, 줄 바꿈 등 원하는 것을 감안할 때, 단지 대체 \ S \ S + '로 :
string = string.replace(/\s\s+/g, ' ');
당신이 정말로 공백 만 (따라서하지 탭, 줄 바꿈 등)을 포함하려면 이렇게 :
string = string.replace(/ +/g, ' ');
-
2.성능에 관심이있을 것 때문에, 나는 불을 지르고 이러한 프로 파일링. 여기에 내가 가진 결과는 다음과 같습니다
성능에 관심이있을 것 때문에, 나는 불을 지르고 이러한 프로 파일링. 여기에 내가 가진 결과는 다음과 같습니다
str.replace( / +/g, ' ' ) -> 380ms str.replace( /\s\s+/g, ' ' ) -> 390ms str.replace( / {2,}/g, ' ' ) -> 470ms str.replace( / +/g, ' ' ) -> 790ms str.replace( / +(?= )/g, ' ') -> 3250ms
이 100,000 문자열 교체를 실행, 파이어 폭스에 있습니다.
성능이 문제가되는 생각한다면 나는 불을 지르고 함께 자신의 프로파일 테스트를 수행하는 것이 좋습니다. 자신의 프로그램에서 병목 현상이 어디에 있는지 인간은 예측에서 악명입니다.
(또한, 주 IE 8의 개발자 도구 모음은 또한 프로파일 러가 내장되어 있음 - 성능이 IE처럼 어떤 가치가 확인 될 수 있습니다.)
-
3.
var str = "The dog has a long tail, and it is RED!"; str = str.replace(/ {2,}/g,' ');
편집하다: 당신이 공백 문자의 모든 종류를 교체하고자하는 경우 가장 효율적인 방법은 그렇게 될 것이다 :
str = str.replace(/\s{2,}/g,' ');
-
4.이 모든 공백 문자를 타겟으로하지만 이것은 하나 개의 솔루션입니다 :
이 모든 공백 문자를 타겟으로하지만 이것은 하나 개의 솔루션입니다 :
"The dog has a long tail, and it is RED!".replace(/\s\s+/g, ' ') "The dog has a long tail, and it is RED!"
편집 : 그것은 하나 이상의 공백 뒤에 공간을 대상으로하기 때문에이 아마 더 :
"The dog has a long tail, and it is RED!".replace(/ +/g, ' ') "The dog has a long tail, and it is RED!"
대체 방법 :
"The dog has a long tail, and it is RED!".replace(/ {2,}/g, ' ') "The dog has a long tail, and it is RED!"
내가 사용하지 않은 / \ S + / 자체는 필요 이상으로 대상으로하기 때문에 범위 1 문자를 여러 번 덜 효율적으로 될 수 있다는 것을을 대체 공간입니다.
나는 깊이 그래서 LMK 버그가있는 경우 다음 중 하나를 테스트하지 않았다.
당신이 문자열 교체가 기억해야 할 거라면 또한, 자신의 교체 등의 변수 / 속성을 재 할당합니다 :
var string = 'foo' string = string.replace('foo', '')
jQuery.prototype.text 사용 :
var el = $('span:eq(0)'); el.text( el.text().replace(/\d+/, '') )
-
5.나는 더 나은 이름의 부족에 대한 DERP 방법 호출이 방법을 가지고있다.
나는 더 나은 이름의 부족에 대한 DERP 방법 호출이 방법을 가지고있다.
while (str.indexOf(" ") !== -1) { str = str.replace(/ /g, " "); }
JSPerf에서 그것을 실행하면 몇 가지 놀라운 결과를 제공합니다.
-
6.보다 강력한 방법이 존재하는 경우도, 초기 및 후행 공백을 제거하는 처리합니다. 예 :
보다 강력한 방법이 존재하는 경우도, 초기 및 후행 공백을 제거하는 처리합니다. 예 :
// NOTE the possible initial and trailing spaces var str = " The dog has a long tail, and it is RED! " str = str.replace(/^\s+|\s+$|\s+(?=\s)/g, ""); // str -> "The dog has a long tail, and it is RED !"
귀하의 예는 그 공간을 가지고 있지 않았지만 그들도 매우 일반적인 시나리오, 그리고 허용 대답은 같은 하나의 공간에 사람들을, 트리밍했다 : "그 ... RED"를, 당신은 일반적으로 필요합니다 바가 아니다.
-
7.더 강력한 :
더 강력한 :
function trim(word) { word = word.replace(/[^\x21-\x7E]+/g, ' '); // change non-printing chars to spaces return word.replace(/^\s+|\s+$/g, ''); // remove leading/trailing spaces }
-
8.내가 제안
내가 제안
string = string.replace(/ +/g," ");
단지 공간에 대한 OR
string = string.replace(/(\s)+/g,"$1");
또한 하나의 반환에 여러 개의 수익률을 전환합니다.
-
9.나는 파티에 늦게임을 알고 있지만, 나는 좋은 해결책을 발견했다.
나는 파티에 늦게임을 알고 있지만, 나는 좋은 해결책을 발견했다.
여기있어:
var myStr = myStr.replace(/[ ][ ]*/g, ' ');
-
10.여기에 (자바 스크립트를 대체 사용하지 않고 문자열에 공백을 대체) 대체 사용하지 않으려면 다른 솔루션입니다
여기에 (자바 스크립트를 대체 사용하지 않고 문자열에 공백을 대체) 대체 사용하지 않으려면 다른 솔루션입니다
var에 STR은 = "개는 긴 꼬리를 가지고 있으며, 그것은 RED입니다!"; VAR 규칙 = / \ S {1} / g; STR = str.split (규칙) .join ( ""); (STR) document.write를;
-
11.초보자 등을위한 포괄적 인 암호화되지 않은 대답.
초보자 등을위한 포괄적 인 암호화되지 않은 대답.
이 작동하지 않는 너희들의 일부가 작성한 스크립트를 테스트 나 같은 인형 모두를위한 것입니다.
다음 3 예 나는 다음과 같은 3 개 웹 사이트에 특수 문자 및 여분의 공백을 제거하는 데 걸린 단계 (완벽하게 작동 모두) {1이다. EtaVisa.com 2. EtaStatus.com 3. Tikun.com} 나는이 작업을 완벽 것을 알 수 있도록.
우리는 시간과 NO 문제에서 50로이 서로를 체인했다.
//이 제거 된 특수 문자 + 0-9과 (상부 및 하부 케이스) 단지 글자 수 있습니다
function NoDoublesPls1() { var str=document.getElementById("NoDoubles1"); var regex=/[^a-z]/gi; str.value=str.value.replace(regex ,""); }
//이 제거 된 특수 문자와 (상부 및 하부 케이스) 단지 문자를 허용하고 0-9과 공간
function NoDoublesPls2() { var str=document.getElementById("NoDoubles2"); var regex=/[^a-z 0-9]/gi; str.value=str.value.replace(regex ,""); }
//이 제거 된 특수 문자와 (상부 및 하부 케이스) 단지 문자를 허용하고 0-9과 공간 // 끝에 .replace (/ \ S \ S + / g는 "") 과도한 공간을 제거 나는 작은 따옴표를 사용하는 경우 //, 그것은 작동하지 않았다.
function NoDoublesPls3() { var str=document.getElementById("NoDoubles3"); var regex=/[^a-z 0-9]/gi; str.value=str.value.replace(regex ,"") .replace(/\s\s+/g, " "); }
::다음:: 은 .js로 # 3 저장을 // 난 내 NoDoubles.js라고
::다음:: 귀하의 페이지에 당신의 JS 포함
<script language="JavaScript" src="js/NoDoubles.js"></script>
양식 필드에이 포함 :: 같은
<INPUT type="text" name="Name" onKeyUp="NoDoublesPls3()" onKeyDown="NoDoublesPls3()" id="NoDoubles3"/>
그래서이 같다고
<INPUT type="text" name="Name" onKeyUp="NoDoublesPls3()" onKeyDown="NoDoublesPls3()" id="NoDoubles3"/>
이것은, 특수 문자를 제거 하나의 공간을 허용하고 여분의 공백을 제거합니다.
-
12.또한 가능성 :
또한 가능성 :
str.replace( /\s+/g, ' ' )
-
13.
var string = "The dog has a long tail, and it is RED!"; var replaced = string.replace(/ +/g, " ");
또는 당신은 또한 탭을 바꾸려면 :
var replaced = string.replace(/\s+/g, " ");
-
14.JQuery와는 기본적으로 "푸 바"로이 "푸 바"같은 변 트림 () 함수를 가지고있다.
JQuery와는 기본적으로 "푸 바"로이 "푸 바"같은 변 트림 () 함수를 가지고있다.
var string = " My String with Multiple lines "; string.trim(); // output "My String with Multiple lines"
자동 시작과 문자열의 끝에서뿐만 아니라 빈 공간을 제거하기 때문에 그것은 훨씬 더 유용하다. 어떤 정규식은 필요하지 않습니다.
-
15.사용하지 않는 대체되고, 문자열 사항 String.split = (/ \ W + /);
사용하지 않는 대체되고, 문자열 사항 String.split = (/ \ W + /);
-
16.나는 우리가 정규식을 사용하는 것을 알고 있지만, 인터뷰 동안, 나는 REGEX를 사용하지 않고 할 질문을 받았다.
나는 우리가 정규식을 사용하는 것을 알고 있지만, 인터뷰 동안, 나는 REGEX를 사용하지 않고 할 질문을 받았다.
@slightlytyler은 아래의 방법으로 오는 저를 도왔다.
const를 testStr = "I LOVE 유래 LOL"; CONST removeSpaces STR = => { CONST = str.split 문자 ( ''); CONST nextChars = chars.reduce ( (ACC, c) => { 경우 (c === ') { CONST lastChar = ACC [acc.length - 1]; 경우 (lastChar === '') { ACC 반환; } } 복귀 ... ACC, C] }, [] ); CONST nextStr nextChars.join = ( ''); 반환 nextStr }; CONSOLE.LOG (removeSpaces (testStr));
-
17.
var myregexp = new RegExp(/ {2,}/g); str = str.replace(myregexp,' ');
-
18.우리는 다음과 같은 정규 표현식이 나오지 시스템 명령의 도움으로 설명 할 수 있습니다. 유사한 정규식은 다른 언어와 플랫폼에서 사용할 수 있습니다.
우리는 다음과 같은 정규 표현식이 나오지 시스템 명령의 도움으로 설명 할 수 있습니다. 유사한 정규식은 다른 언어와 플랫폼에서 사용할 수 있습니다.
일부 파일 말 시험에 텍스트를 추가
manjeet-laptop:Desktop manjeet$ cat test "The dog has a long tail, and it is RED!"
우리는 하나의 공간에 모든 공백을 대체하기 위해 다음과 같은 정규 표현식을 사용할 수 있습니다
manjeet-laptop:Desktop manjeet$ sed 's/ \{1,\}/ /g' test "The dog has a long tail, and it is RED!"
이 목적을 제공합니다 희망
-
19.하나의 공간을 여러 공백을 대체하기 위해보십시오.
하나의 공간을 여러 공백을 대체하기 위해보십시오.
<script type="text/javascript"> var myStr = "The dog has a long tail, and it is RED!"; alert(myStr); // Output 'The dog has a long tail, and it is RED!' var newStr = myStr.replace(/ +/g, ' '); alert(newStr); // Output 'The dog has a long tail, and it is RED!' </script>
단일 공간으로 여러 공간 교체 @ 더 읽기
-
20.
var text = `xxx df dfvdfv df dfv`.split(/[\s,\t,\r,\n]+/).filter(x=>x).join(' ');
결과:
"xxx df dfvdfv df dfv"
-
21.컨트롤에 대해 당신은이 값을 처리하기 위해 콜백 대신 사용할 수 있습니다.
컨트롤에 대해 당신은이 값을 처리하기 위해 콜백 대신 사용할 수 있습니다.
value = "tags:HUNT tags:HUNT tags:HUNT tags:HUNT" value.replace(new RegExp(`(?:\\s+)(?:tags)`, 'g'), $1 => ` ${$1.trim()}`) //"tags:HUNT tags:HUNT tags:HUNT tags:HUNT"
-
22.이 스크립트는 말과 트림 사이에 공백 (등 여러 공백, 탭, 반환,) 제거 :
이 스크립트는 말과 트림 사이에 공백 (등 여러 공백, 탭, 반환,) 제거 :
// Trims & replaces any wihtespacing to single space between words String.prototype.clearExtraSpace = function(){ var _trimLeft = /^\s+/, _trimRight = /\s+$/, _multiple = /\s+/g; return this.replace(_trimLeft, '').replace(_trimRight, '').replace(_multiple, ' '); };
-
23.'마우스 포인터 터치'.replace (/ ^ \ S + | \ S + $ | (\ S) + / g, "$ 1") 트릭을 할해야합니다!
'마우스 포인터 터치'.replace (/ ^ \ S + | \ S + $ | (\ S) + / g, "$ 1") 트릭을 할해야합니다!
from https://stackoverflow.com/questions/1981349/regex-to-replace-multiple-spaces-with-a-single-space by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 여러 아약스 통화의 jQuery 콜백 (0) | 2020.10.01 |
---|---|
[JQUERY] 어떻게 자바 스크립트와 사업부의 화면을 캡처하는 방법? (0) | 2020.10.01 |
[JQUERY] 마우스가 jQuery를의 요소 상에 있는지 어떻게 확인합니까? (0) | 2020.10.01 |
[JQUERY] 왜 gridview에있다 : 사실은 사용하고 그것은 무엇을 의미 하는가? (0) | 2020.10.01 |
[JQUERY] 상위 이벤트 핸들러의 방지 실행 (0) | 2020.10.01 |