RegExp для всего кроме целого числа или десятичной дроби
Привет, подскажите плиз регулярку, которая бы резала все, кроме целых чисел и десятичных дробей, у меня сейчас вот такое выражение:
var regexp = new RegExp('[^0-9.]'); var str = '0.7'; var result = str.replace(regexp, ''); alert(result); Но оно позволяет ввести такое число - "0.756.12.12.12.23...", а нужно, чтобы только одна точка могла быть. Спасибо всем огромное! :-) |
^(\d+)?([.,]\d+)
|
^(?:\d+(?:\.\d+)?)$ |
Цитата:
|
<script type='text/javascript'> alert(/^(\d+)?([.,]\d+)/.test('7')); // false alert(/^(\d+)?([.,]\d+)/.test('7.5d')); // true </script> |
exec, я понял :)
Только ты написал Цитата:
|
<script type='text/javascript'> alert(/(\d+)?([\.,]\d+)?/.test('epic7fail')); // true </script> test() проверяет не на полное соответствие строки, а на вхождение подстроки, подходящей под регулярное выражение. |
А может проще без регулярок )))
var str = '0.756'; var result = isNaN(str)?'':str; alert(result); |
Цитата:
|
alert(isNaN("Infinity")); Цитата:
|
Цитата:
alert(isNaN('0xff22')); |
ок тогда с регуляркой )))
var str = '7.07'; var regexp = /^\d+(\.\d+)?$/; var result = regexp.test(str)?str:''; alert(result); |
Почему не решить задачу в лоб?:)
var string = 'df098.65llkj'; alert(+string.match(/\d+\.\d+|\d+/)); |
Предложу свой вариант.
Позволяет точку, запятую и минус, вообщем, все что нужно. var str = 'd-f-098.65llkj'; alert(str.match(/-{0,1}(?:\d+(?:\.|,)\d+|\d+)/)); |
Цитата:
А если это дефис? |
А чем дефис при вводе цифр отличается от минуса? Обычно дефис перед цифрой - знак отрицания. Если не предполагается ввод отрицательных чисел, удаляйте его из сравнения
|
Часовой пояс GMT +3, время: 02:04. |