Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2010, 14:03
Новичок на форуме
Отправить личное сообщение для ruslanchek Посмотреть профиль Найти все сообщения от ruslanchek
 
Регистрация: 05.08.2010
Сообщений: 4

RegExp для всего кроме целого числа или десятичной дроби
Привет, подскажите плиз регулярку, которая бы резала все, кроме целых чисел и десятичных дробей, у меня сейчас вот такое выражение:

var regexp = new RegExp('[^0-9.]');
var str = '0.7';
var result = str.replace(regexp, '');
alert(result);


Но оно позволяет ввести такое число - "0.756.12.12.12.23...", а нужно, чтобы только одна точка могла быть.

Спасибо всем огромное! :-)
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2010, 14:12
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

^(\d+)?([.,]\d+)
Ответить с цитированием
  #3 (permalink)  
Старый 02.11.2010, 18:06
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

^(?:\d+(?:\.\d+)?)$
Ответить с цитированием
  #4 (permalink)  
Старый 03.11.2010, 02:16
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Сообщение от exec Посмотреть сообщение
^(?:\d+(?:\.\d+)?)$
И че мы добились не захватывающей маской? Да еще и по жесткому условию
Ответить с цитированием
  #5 (permalink)  
Старый 03.11.2010, 04:17
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

<script type='text/javascript'>
	alert(/^(\d+)?([.,]\d+)/.test('7')); // false
	alert(/^(\d+)?([.,]\d+)/.test('7.5d')); // true
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 03.11.2010, 13:04
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

exec, я понял
Только ты написал
Цитата:
^(?:\d+(?:\.\d+)?)$
А надо было: (\d+)?([\.,]\d+)?
Ответить с цитированием
  #7 (permalink)  
Старый 03.11.2010, 14:06
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

<script type='text/javascript'>
	alert(/(\d+)?([\.,]\d+)?/.test('epic7fail')); // true
</script>


test() проверяет не на полное соответствие строки, а на вхождение подстроки, подходящей под регулярное выражение.
Ответить с цитированием
  #8 (permalink)  
Старый 03.11.2010, 15:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

А может проще без регулярок )))
var str = '0.756';
var result =  isNaN(str)?'':str;
alert(result);
Ответить с цитированием
  #9 (permalink)  
Старый 03.11.2010, 16:52
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,576

Сообщение от рони Посмотреть сообщение
А может проще без регулярок )))
var str = '0.756';
var result =  isNaN(str)?'':str;
alert(result);
Гениально!)))
Ответить с цитированием
  #10 (permalink)  
Старый 03.11.2010, 22:05
Аспирант
Посмотреть профиль Найти все сообщения от bugmenot
 
Регистрация: 24.07.2009
Сообщений: 62

alert(isNaN("Infinity"));

Цитата:
подскажите плиз регулярку, которая бы резала все, кроме целых чисел и десятичных дробей
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onClick эвент для всего документа, кроме отдельно взятого элемента DOM el_erizo Events/DOM/Window 5 19.03.2010 15:09