如何使用jQuery的trim()函数

时间:2012-12-03 10:20:29

标签: javascript jquery trim

正如堆栈上的许多问题所讨论的那样 - IE 8不会接受.trim(),但是jQuery框架会处理这个问题。

我不知道如何翻译我的函数来使用那个版本的trim(我以为我已经在使用jQuery),有人可以提供建议吗?这是我的代码:

$('input').val(function(index, val){
    return val.replace('Please Select', '').trim();
});

这是为了替换没有任何内容的字符串。

我试过了:

$('input').val(function(index, val){
    return val.replace('Please Select', '')$.trim();
});

但这并不好。

3 个答案:

答案 0 :(得分:26)

$.trim(val.replace('Please Select', ''))

http://api.jquery.com/jQuery.trim/

答案 1 :(得分:7)

IE8没有原生的trim方法,一般来说,我只是增加原型:

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

这是修剪字符串的最短正则表达式,但我听说它.replace(/^\s\s*/,'').replace(/\s*\s$/,'')(稍微)更快......选择是你的

如果你真的想为此使用jQuery,当然,你必须使目标字符串成为被调用方法的上下文($.trim调用$上的方法=== jQuery对象),所以将String作为jQ对象:

$('  foo bar  ').trim();//returns "foo bar"
//compared to augmented prototype:
'   foo bar  '.trim();//returns "foo bar"

增强原型的好处是你没有额外的创建新jQuery对象的开销,而使用prototype-approach依赖于JS将字符串包装在本机String对象中并将方法应用于。基本上,它是相同的操作,但它应该稍微更高效,因为jQuery对传递给jQuery构造函数的任何字符串($())进行了大量检查

答案 2 :(得分:4)

试试这个:

$.trim(val.replace('Please Select', ''));

这是文档中的Trim()条目。