2011-11-19 2 views
0

이 트림 기능을 적용하려면 어떻게해야합니까? var trimmed = str.replace(/^\s+|\s+$/g, '') ; 텍스트 상자에 공백이 포함되어 있으면 "틀린"메시지가 표시 될 수 있습니다. 또한이 함수를 사용하면 텍스트 상자에 "/"가 포함 된 데이터가 포함될 수 있기 때문에 텍스트 상자에 "/"를 사용할 수 있습니다. 대신 replace()내 텍스트 상자에이 트림 기능을 사용하려면 어떻게해야합니까?

if (moduletext.value == ""){ 
     errmsg.innerHTML = "Incorrect"; 
    }else{ 
      errmsg.innerHTML = "Correct"; 
    } 

답변

2

가장 쉬운 방법은 자른 값의 길이를 확인하는 것입니다.

var trimmed = moduletext.value.replace(/^\s+/, '').replace(/\s+$/, ''); 
if(!trimmed.length) { 
    errmsg.innerHTML = 'Incorrect'; 
} else { 
    errmsg.innerHTML = 'Correct'; 
} 

당신은 (일반적으로 아무것도하지 < IE9)를 사용중인 브라우저 당신이 알고있는 경우, 당신이 왼쪽을 원하는 나타납니다 즉, 'my string'.trim();

+0

답변 해 주셔서 감사합니다. Scurker Answer는 내가 찾고있는 것입니다. 그래서이 대답을 가장 좋은 대답이라고 부릅니다. – BruceyBandit

0

match()와 간단한 표현을 사용합니다. 정규 표현식 /\s/은 텍스트 상자의 공백과 일치하므로 Incoorect 메시지가 표시됩니다.

if (moduletext.match(/\s/)){ 
    errmsg.innerHTML = "Incorrect"; 
}else{ 
    errmsg.innerHTML = "Correct"; 
} 

텍스트 상자에 /을 포함 할 수 있습니다. 정규식 내에있는 /은 구분 기호이며 실제 표현식 구성 요소는 아닙니다.

+0

는 다음이있다

function trim(stringToTrim) { return stringToTrim.replace(/^\s+|\s+$/g,"");} function ltrim(stringToTrim) { return stringToTrim.replace(/^\s+/,"");} function rtrim(stringToTrim) { return stringToTrim.replace(/\s+$/,"");} calling : trim(document.getElementById('username').value); used for removing all kinds of spacing... 
내가 시도한 것 : if (moduletext.value == "") { errmsg.innerHTML = "Incorrect"; } else if (moduletext.match (/ \ s /)) { errmsg.innerHTML = "틀림"; } else { errmsg.innerHTML = "수정"; } – BruceyBandit

+0

뭔가 잘못 메시지를 표시하지 않습니다 – BruceyBandit

+0

@Michael 정규 표현식이 말하는 내용을 생각해보십시오. ' ''.match (/ \ s /); // true' ' 'asdf'.match (/ \ s /); // false' ' 'df'.match (/ \ s /); // true' 표현식은 공백이 포함 된 _anything_과 일치합니다. 이는 Malcom이 수행하려고 시도하는 것과 반대입니다. – scurker

0

를 트림의 기본 브라우저 구현을 사용할 수 있도록하고 있습니다 오른쪽 정렬 된 문자열 및 사용자의 상태 필드를 업데이트하는 방법에 대해 설명합니다. 이 당신에게 관심이있을 수 있습니다

/과 관련하여
<html> 
    <head> 
    <script> 
      //option 1: just determine if the string is valid 
      string_valid = function (str) { 

       validity_indicator = { 
        true:"Valid", 
        false:"InValid", 
       }; 

       return validity_indicator[str.match(/\s*([^\s](:?.*[^\s])?)\s*/) != null]; 
      }; 

      // option 2: the trim and validation sort of wrapped up in one. 
      parse_for_validity = function (str) { 
       if ((result = /\s*([^\s](:?.*[^\s])?)\s*/.exec(str)) == null) { 
        return 'Incorrect'; 
       } 
       return result[ 1 ]; 
      }; 

      // then either 
      // errmsg.innerHTML = string_valid(your_string_here) 

     </script> 
    </head> 
    <body> 
     <!-- and then test them out --> 
     <script> 
      alert(string_valid(" "));  // => 'Incorrect' 
      alert(string_valid(" abc "));  // => 'Correct' 
      alert(parse_for_validity(" ")); // => 'Incorrect' 
      alert('...' + parse_for_validity(" abc ") + '...'); // => '...abc...' 
     </script> 
    </body> 
</html> 

, 당신은 당신이 당신의 정규 표현식 내에서 그것을 사용하는 경우 그것은 자신을 염려해야한다 생각합니다. 당신이 테스트하고있는 문자열에 /을 가지고 있다면 괜찮습니다. 당신이 당신의 정규 표현식에 /을 테스트하려면, 다음과 같은 식으로,이 \/처럼 탈출 할 수 있어야한다 : /\//

도움이 되었기를 바랍니다. 나는 정규 표현식을 좋아한다! :)

+0

* 이걸 / – kikuchiyo

0
는 그것이 내가 당신의 대답에서 내 시도를 뒀다 "동일"또는 공백이 포함 된 경우 당신이 내 편집을 볼 수없는 경우 그것은 내가했던, 아래
관련 문제