试图修剪一个字符串'px'?

时间:2011-11-13 03:17:58

标签: javascript jquery string

我正在尝试包装我的脚本placeholderRX。我需要做的就是从此调用返回的字符串末尾获取'px'。

$(form).children('.inputSpan').each(function() {
   var $input = $(this)
   var $padding = $input.children('.input').css('padding-left');
});

返回“6px”。我想关闭6 px并确保它是一个整数,这样我就可以添加2个像素并将其提供给css规则。我是javascript中字符串操作的新手。救救我!

3 个答案:

答案 0 :(得分:11)

您可以使用基本的javascript replace(),parseInt()或parseFloat()函数从结果中删除“px”。您使用哪种方法取决于您的具体需求。

以下是使用parse replace()删除“px”的缩短版代码。

$(form).children('.inputSpan').each(function() {
   var padding = $(this).children('.input').css('padding-left').replace("px", "");
});

在上面的代码中,“16px”将返回“16”。 “16.7px”将返回“16.7px”。 “16em”将返回“16em”。


以下是使用parse parseInt()删除“px”等代码的缩短版本。

$(form).children('.inputSpan').each(function() {
   var padding = parseInt($(this).children('.input').css('padding-left'));
});

在上面的代码中,“16px”将返回“16”。 “16.7px”将返回“16”。 “16em”将返回“16”。与第一个replace()示例相反,这将删除任何文本,而不仅仅是“px”。


以下是使用parse parseDouble()删除“px”等代码的缩短版本。

$(form).children('.inputSpan').each(function() {
   var padding = parseDouble($(this).children('.input').css('padding-left'));
});

在上面的代码中,“16px”将返回“16”。 “16.7px”将返回“16.7”。 “16em”将返回“16”。与parseInt()相反,如果你出于某种原因,它会保留小数。


当然,如果有理由看到为将来参考而采取的分解步骤,或者由于其他原因使用了其他变量,则可以保持代码冗长。这是使用parseInt()的长版本。

$(form).children('.inputSpan').each(function() {
    var $input = $(this)
    var padding = $input.children('.input').css('padding-left');
    var paddingInt = parseInt(padding);
});

另外,解释变量名称从$ padding到padding的变化。 javascript变量前面的$符号是区分常规javascript变量和jQuery变量的常用方法,因为它们具有不同的属性。没有理由使用$ padding,因为.css()不返回jQuery对象,而是返回一个简单的字符串。

此外,对于更复杂的搜索,您可以研究正则表达式。

答案 1 :(得分:3)

function size(value){
    return( parseInt( value.replace('px','') ,10) ); 
}

使用这样的功能:

size("32px"); // Returns 32 as an integer

答案 2 :(得分:0)

$(form).children('.inputSpan').each(function() {
   var $input = $(this)
   var $padding = $input.children('.input').css('padding-left');

   $padding = $padding.substring(0, $padding.Length - 2);
});