.trim () в JavaScript не работает в IE

Для окон:

system("rmdir ".escapeshellarg($path) . " /s /q");
456
задан Shog9 25 February 2011 в 01:47
поделиться

7 ответов

Добавьте следующий код для добавления функции обрезки строки.

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}
770
ответ дан 22 November 2019 в 22:57
поделиться

Я не думаю, что в стандарте JavaScript есть собственный метод trim(). Возможно, Mozilla предоставляет такой метод, но если вам нужен такой метод в IE, вам придется написать его самостоятельно. На этой странице есть несколько версий.

3
ответ дан 22 November 2019 в 22:57
поделиться

Может быть, в это время параметр null ?

-121--3003400-

Из абзаца сразу после этого кода объясняет это. Существует сочетание пакетных и лексических переменных в одной области:

Остальная часть сокращения работает как сортировка, помещая два элемента в пакетные переменные $ a и $ b. Грэм определяет лексические переменные с этими именами и немедленно назначает typeglobs для $ a и $ b в вызывающем пакете с помощью символьных ссылок. После этого значения $ a и $ b являются лексическими версиями. Когда он вызывает аргумент подпрограммы & {$ code} (), этот код просматривает переменные пакета, которые действуют, когда я написал подпрограмму. Понял? Внутри уменьшите, я использую лексические версии, но внутри $ code, я использую версии пакета из вызывающего пакета. Вот почему Грэм сделал им псевдонимы друг друга.

-121--3147194-

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

Это довольно недавнее дополнение к javascript, не поддерживаемое IE.

12
ответ дан 22 November 2019 в 22:57
поделиться

К сожалению, кроссбраузерная поддержка JavaScript для trim() отсутствует.

Если вы не используете 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+$/,"");
}
34
ответ дан 22 November 2019 в 22:57
поделиться

Похоже, что эта функция не реализована в IE. Если вы используете jQuery, вы можете использовать $.trim() вместо этого (http://api.jquery.com/jQuery.trim/).

202
ответ дан 22 November 2019 в 22:57
поделиться
var res = function(str){
    var ob; var oe;
    for(var i = 0; i < str.length; i++){
        if(str.charAt(i) != " " && ob == undefined){ob = i;}
        if(str.charAt(i) != " "){oe = i;}
    }
    return str.substring(ob,oe+1);
}
0
ответ дан 22 November 2019 в 22:57
поделиться

У меня была аналогичная проблема, когда я пытался обрезать значение из ввода, а затем спрашивал, равно ли оно нулю:

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

Однако это бросило вызов в работе над IE6 - 8. Достаточно досадно, что я пытался var it up примерно так:

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

Однако использование метода обрезки jQuery отлично работает у меня во всех браузерах ..

var originalValueTrimmed = $.trim($(this).val());              
            if (originalValueTrimmed  == "") { ... }
8
ответ дан 22 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: