.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, '');
}