通过jQuery删除尾随空格

时间:2014-07-10 14:48:33

标签: javascript jquery regex

我试图消除" $"后面的空格,这实际上是字符串的一部分(例如$ 100.00),并且是按用户输入动态生成的。

我对正则表达式的了解非常有限。所以我不确定这是否是我应该使用的东西。或许更实际的解决方案是.trim()。但据我了解,该方法会查找开头和结尾的空格。

这是我正在使用的标记:

<div class="sideBy_side">
   Estimated Total Price ‡<br>
   <span class="currency"><strong>$ 172.84</strong> <a class="popup currency"
   href="/" title="USD">USD</a></span>
</div>

我的JSFiddle

我对jQuery和JS开发一般都很陌生。您可以提供任何指示。

6 个答案:

答案 0 :(得分:2)

您可以添加以下代码:

jQuery('.currency').find('strong').text(function(_,txt){
   return txt.replace(" ","");// or txt.replace(/\$\s/,'$');
});

答案 1 :(得分:1)

你可以在vanilla JS中做到这一点:

function stripWhitespaceAfterDollar(strInput){ var pattern = /\$( )+/; return strInput.replace(pattern,"$"); }

您想查看pattern

这是正则表达式。要创建正则表达式,请将其放在//

我们寻找这个部分\$的美元符号 我们需要逃避美元,因为它是一个正则表达式运算符 然后我们用( )+寻找尾随的whitepsace (我们不需要括号,但为了清楚起见,我把它们放在那里)。我们可以使用+
+正则表达式运算符表示一个或多个,因此我们查找一个或多个空格。

然后我们使用字符串builtin replace,它查找字符串或正则表达式并替换它 在这种情况下,我们正在寻找一个美元,然后是空白,并用美元符号替换它。

答案 2 :(得分:0)

如果空白始终是第二个字符,则不需要正则表达式。这样的事情可以解决问题:

//wrap total price in span tag
jQuery('.currency strong').wrapInner('<span id ="dollarSymb"></span>');

var price = $("#dollarSymb").html();
var cut = price.substring(0, 1) + price.substring(2);
$("#dollarSymb").html(cut);

<强> FIDDLE

答案 3 :(得分:0)

您可以使用正则表达式:

var $element = $('.currency strong');
var text = $element.text();
var newText = text.replace(/(\$)\s*/g, '$1');

$element.text(newText);

答案 4 :(得分:0)

您可以尝试这样的事情:

jQuery(function(​$) {
    var pane = $('#inputPane');
    pane.val($.trim(pane.val()).replace(/\s*[\r\n]+\s*/g, '\n')
                               .replace(/(<[^\/][^>]*>)\s*/g, '$1')
                               .replace(/\s*(<\/[^>]+>)/g, '$1'));
});

结果如下:

<p>some text here...</p>
<p>more text here...</p>

答案 5 :(得分:0)

添加它应该这样做:

.text(function(_,old) {return old.replace(/\s/g,'');})

Demo