Вар.заменить-это не функция
Я использую приведенный ниже код, чтобы попытаться обрезать строку в Javascript, но получаю ошибку, упомянутую в заголовке:
function trim(str) {
return str.replace(/^s+|s+$/g,'');
}
Edit:
я исправил проблему.... извините, что я должен был поставить код на то, как я его называл.... понял, что я случайно передавал объект самого поля формы, а не его значение.
9 ответов:
Я предполагаю, что код, который вызывает ваш и не фактически передавая строку к нему.
Если вы опубликуете этот код, я могу обновить свой ответ.
вероятные вопросы:
- переменная (вместо строки);
num=35; num.replace(3,'three'); =====> ERRORnum=35; num.toString().replace(3,'three'); =====> CORRECT !!!!!!num='35'; num.replace(3,'three'); =====> CORRECT !!!!!!- переменная объект (вместо строки);
- переменная не определена;
заменить не заменит номера. Он заменяет только строки.
Это должно работать.
function trim(str) { return str.toString().replace(/^\s+|\s+$/g,''); }Если вы хотите обрезать строку. Вы можете просто использовать " str.trim ()"
вы, вероятно, должны сделать некоторые проверки, прежде чем фактически выполнить свою функцию :
function trim(str) { if(typeof str !== 'string') { throw new Error('only string parameter supported!'); } return str.replace(/^\s+|\s+$/g,''); }
вы не передаете строку, иначе она будет иметь
replaceметод. Я надеюсь, что вы не набралиfunction trim(str) { return var.replace(blah); }вместоreturn str.replace.
вы правильно вызвали свою функцию? То есть. является ли то, что вы передаете как параметр, действительно строкой?
в противном случае, я не вижу проблемы с вашим кодом - пример ниже работает как ожидалось
function trim(str) { return str.replace(/^\s+|\s+$/g,''); } trim(' hello '); // --> 'hello'однако, если вы вызываете свой functoin с чем-то нестроковым, вы действительно получите ошибку выше:
trim({}); // --> TypeError: str.replace is not a function
в случае числа вы можете попробовать преобразовать в строку:
var stringValue = str.toString(); return stringValue.replace(/^\s+|\s+$/g,'');
вы должны использовать toString() метод Java script для преобразования в строку раньше, потому что метод replace является Строковой функцией.
я исправил проблему.... извините, что я должен был поставить код на то, как я его называл.... понял, что я случайно передавал объект самого поля формы, а не его значение.
в любом случае спасибо за ваши ответы. :)
Comments