[javascript] IE에서 JavaScript가 작동하지 않는 .trim ()

.trim()JavaScript 프로그램 중 하나에서 문자열에 적용하려고했습니다 . Mozilla에서는 제대로 작동하지만 IE8에서 시도하면 오류가 표시됩니다. 아무도 여기서 무슨 일이 일어나고 있는지 알고 있습니까? 어쨌든 IE에서 작동시킬 수 있습니까?

암호:

var ID = document.getElementByID('rep_id').value.trim();

오류 표시 :

메시지 : 개체가이 속성 또는 메서드를 지원하지 않습니다
줄 : 604
문자 : 2
코드 : 0
URI : http : //test.localhost/test.js



답변

문자열에 트림 기능을 추가하려면 다음 코드를 추가하십시오.

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
  }
}


답변

해당 기능이 IE에서 구현되지 않은 것 같습니다. jQuery를 사용 $.trim()하는 경우 대신 http://api.jquery.com/jQuery.trim/을 사용할 수 있습니다 .


답변

jQuery :

$.trim( $("#mycomment").val() );

누군가가 사용 $("#mycomment").val().trim();하지만 IE에서는 작동하지 않습니다.


답변

불행히도 trim ()에 대한 크로스 브라우저 JavaScript 지원은 없습니다.

jQuery (.trim () 메소드가 있음)를 사용하지 않는 경우 다음 메소드를 사용하여 문자열에 트림 지원을 추가 할 수 있습니다.

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
}


답변

https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim

이것은 자바 스크립트에 최근에 추가 된 것으로 IE에서는 지원하지 않습니다.


답변

입력에서 값을 자르고 아무것도 아닌지 물을 때 비슷한 문제가 발생했습니다.

if ($(this).val().trim() == "")

그러나 이것은 IE6-8의 작업에서 스패너를 던졌습니다. 짜증나게 충분히 나는 그것을 이렇게 var를 시도했습니다.

   var originalValue = $(this).val();

그러나 jQuery의 트리밍 방법을 사용하면 모든 브라우저에서 완벽하게 작동합니다.

var originalValueTrimmed = $.trim($(this).val());
            if (originalValueTrimmed  == "") { ... }


답변

트림 기능을 구현하는 코드를 작성했습니다.

LTRIM (왼쪽 손질) :

function ltrim(s)
{
    var l=0;
    while(l < s.length && s[l] == ' ')
    {   l++; }
    return s.substring(l, s.length);
} 

RTRIM (트림 오른쪽) :

function rtrim(s)
{
    var r=s.length -1;
    while(r > 0 && s[r] == ' ')
    {   r-=1;   }
    return s.substring(0, r+1);
 }

트림 (양쪽 트림) :

function trim(s)
{
    return rtrim(ltrim(s));
}

또는

정규식도 사용할 수 있습니다.

function trimStr(str) {
  return str.replace(/^\s+|\s+$/g, '');
}

유용한 설명