Как получить только цифры из текста, используя jquery

Я хочу получить только цифры (123), а не текст (подтвердить), вот мой код

<p>123confirm</p>

<script type="text/javascript">
$(document).ready(function(){  
  $('p').click(function(){  
    var sd=$(this).text();  
    alert(sd);
  });
});  
</script>

Ответ 1

Вы можете использовать parseInt для этого, он будет разбирать строку и удалять любой "мусор" в ней и возвращать целое число.

Как заметил Джеймс Аллардис, номер должен быть перед строкой. Итак, если это первое, что написано в тексте, оно будет работать, иначе оно не будет.

- EDIT - используйте с вашим примером:

<p>123confirm</p>

<script type="text/javascript">
$(document).ready(function(){  
  $('p').click(function(){  
    var sd=$(this).text();  
    sd=parseInt(sd);
    alert(sd);
  });
});  
</script>

Ответ 2

Я думаю, что RegExp будет хорошей идеей:

var sd = $(this).text().replace(/[^0-9]/gi, ''); // Replace everything that is not a number with nothing
var number = parseInt(sd, 10); // Always hand in the correct base since 010 != 10 in js

Ответ 3

Вы также можете использовать этот метод:

$(document).ready(function(){  
  $(p).click(function(){  
    var sd=$(this).text();
    var num = sd.match(/[\d\.]+/g);
    if (num != null){
        var number = num.toString();
        alert(number );
    }
  });
});  

Ответ 4

Просто наблюдение. По какой-то причине $(p) без котировки вокруг тэга p не работает в некотором javascript. Может, в моем случае.

Я считаю правильным использовать его с кавычками:

...
$("p").click(function(){  
....

Решение jValdron работало для меня, когда я включил кавычки вокруг тега p.