복붙노트

[JQUERY] 하나의 공간을 여러 공백을 대체하는 정규 표현식

JQUERY

하나의 공간을 여러 공백을 대체하는 정규 표현식

해결법


  1. 1.당신은 또한 덮개 탭, 줄 바꿈 등 원하는 것을 감안할 때, 단지 대체 \ S \ S + '로 :

    당신은 또한 덮개 탭, 줄 바꿈 등 원하는 것을 감안할 때, 단지 대체 \ S \ S + '로 :

    string = string.replace(/\s\s+/g, ' ');
    

    당신이 정말로 공백 만 (따라서하지 탭, 줄 바꿈 등)을 포함하려면 이렇게 :

    string = string.replace(/  +/g, ' ');
    

  2. 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. 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. 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. 5.나는 더 나은 이름의 부족에 대한 DERP 방법 호출이 방법을 가지고있다.

    나는 더 나은 이름의 부족에 대한 DERP 방법 호출이 방법을 가지고있다.

    while (str.indexOf("  ") !== -1) {
        str = str.replace(/  /g, " ");
    }
    

    JSPerf에서 그것을 실행하면 몇 가지 놀라운 결과를 제공합니다.


  6. 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. 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. 8.내가 제안

    내가 제안

    string = string.replace(/ +/g," ");
    

    단지 공간에 대한 OR

    string = string.replace(/(\s)+/g,"$1");
    

    또한 하나의 반환에 여러 개의 수익률을 전환합니다.


  9. 9.나는 파티에 늦게임을 알고 있지만, 나는 좋은 해결책을 발견했다.

    나는 파티에 늦게임을 알고 있지만, 나는 좋은 해결책을 발견했다.

    여기있어:

    var myStr = myStr.replace(/[ ][ ]*/g, ' ');
    

  10. 10.여기에 (자바 스크립트를 대체 사용하지 않고 문자열에 공백을 대체) 대체 사용하지 않으려면 다른 솔루션입니다

    여기에 (자바 스크립트를 대체 사용하지 않고 문자열에 공백을 대체) 대체 사용하지 않으려면 다른 솔루션입니다

    var에 STR은 = "개는 긴 꼬리를 가지고 있으며, 그것은 RED입니다!"; VAR 규칙 = / \ S {1} / g; STR = str.split (규칙) .join ( ""); (STR) document.write를;


  11. 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. 12.또한 가능성 :

    또한 가능성 :

    str.replace( /\s+/g, ' ' )
    

  13. 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. 14.JQuery와는 기본적으로 "푸 바"로이 "푸 바"같은 변 트림 () 함수를 가지고있다.

    JQuery와는 기본적으로 "푸 바"로이 "푸 바"같은 변 트림 () 함수를 가지고있다.

    var string = "  My     String with  Multiple lines    ";
    string.trim(); // output "My String with Multiple lines"
    

    자동 시작과 문자열의 끝에서뿐만 아니라 빈 공간을 제거하기 때문에 그것은 훨씬 더 유용하다. 어떤 정규식은 필요하지 않습니다.


  15. 15.사용하지 않는 대체되고, 문자열 사항 String.split = (/ \ W + /);

    사용하지 않는 대체되고, 문자열 사항 String.split = (/ \ W + /);


  16. 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. 17.

    var myregexp = new RegExp(/ {2,}/g);
    
    str = str.replace(myregexp,' ');
    

  18. 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. 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. 20.

    var text = `xxx  df dfvdfv  df    
                         dfv`.split(/[\s,\t,\r,\n]+/).filter(x=>x).join(' ');
    

    결과:

    "xxx df dfvdfv df dfv"
    

  21. 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. 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. 23.'마우스 포인터 터치'.replace (/ ^ \ S + | \ S + $ | (\ S) + / g, "$ 1") 트릭을 할해야합니다!

    '마우스 포인터 터치'.replace (/ ^ \ S + | \ S + $ | (\ S) + / g, "$ 1") 트릭을 할해야합니다!

  24. from https://stackoverflow.com/questions/1981349/regex-to-replace-multiple-spaces-with-a-single-space by cc-by-sa and MIT license