【问题标题】:Jquery Find and Replace NumberJquery查找和替换号码
【发布时间】:2011-05-14 15:04:21
【问题描述】:

我真的很难找到解决方案,我想在一段文本中找到一个数字的每个实例。

<div id='text'>
this is the number 20px and this is the number 100 and this is the number 10.
</div>

所以我想接受这个并让它输出以下内容。 20 100 10

<script type="application/javascript">
        $(document).ready(function() {

        var text = $('.text').text().toString().search( new RegExp( /^[0-9]+$/ i ) );

        alert(text);    

        });                  
        </script>

从警报中,我只希望它输出文本中的数字,即 20 100 10,我现在已经很远了,但是任何有助于让我朝着正确方向前进的帮助我都在用头撞墙,谢谢。

【问题讨论】:

  • 你的模式应该是/\d+?/,现在想不出合适的函数。
  • 如果有负数(-100)你应该捕获-100还是100?
  • 伟大的点 Mikael 我也修改了我的正则表达式,用于负数和十进制数。 :)

标签: jquery replace numbers find


【解决方案1】:

我不知道你会在哪里替换任何东西,但是要找到所有数字,这样的东西就足够了:

// results an array of numbers
var results = $('#text').text().match(/\d+/g);

【讨论】:

  • 正确,但不会匹配单个数字
  • Zlatev, + 量词表示 1 个或多个数字
  • /\d+/.test("1") 返回 true,因为 + 表示一位或多位数字
【解决方案2】:
$('#text').html().match(/\-?\d+(\.\d+)?/g).join(' ')

创建一个包含所有在 div 元素中找到的数字的字符串。

要获得所有找到的数字的数组,只需删除 .join() 方法

请注意,您将“文本”作为元素的 id,因此您需要将其称为 $('#text') 而不是 $('.text')

【讨论】:

    【解决方案3】:

    如果你使用这个:

    var txt = $( '#text' ).html().match(/\d+/g)
    

    它会给你一个数字数组

    【讨论】:

    • 抱歉,Harmen -- 在我看到你的回复之前已经打开并发布了。
    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 2016-03-04
    • 2012-03-05
    • 2012-09-22
    • 2021-10-25
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多