Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2012, 07:19
Новичок на форуме
Отправить личное сообщение для boomrest Посмотреть профиль Найти все сообщения от boomrest
 
Регистрация: 07.02.2012
Сообщений: 7

Помогите составить регулярное выражение для числа с плавающей точкой
var pattern=/[^\d\.]/g; // НЕ цифры и НЕ точки
event.value = event.value.replace(pattern,''); // Если соответствует - удаляется


Код не позволяет вводить любые символы кроме цифр и точек. При таком паттерне я могу вводить сколько угодно цифр и точек. А надо, чтобы точка была одна. (проверка ввода числа с плавающей точкой)
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2012, 07:53
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от boomrest
event.value
для чего это?

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>

<input />

<script>
$('input').bind('input keyup change', function()  {
    var value = this.value;

    if (/^\.|\d+\..*\./.test(value))
        this.value = value.slice(0,-1);                         
});
</script>

Последний раз редактировалось monolithed, 07.02.2012 в 07:55.
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2012, 09:07
Новичок на форуме
Отправить личное сообщение для boomrest Посмотреть профиль Найти все сообщения от boomrest
 
Регистрация: 07.02.2012
Сообщений: 7

Сообщение от monolithed
для чего это?
Перехват события

Можно без jQuery? Ваш код запрещает ввод более одной точки, но ввод других символов, кроме цифр разрешает.

Вот весь код:

<script type="text/javascript">
function tableWalk(event) {
var pattern=/[^\d\.]/g; // Только цифры и точка
event.value = event.value.replace(pattern,'');}
</script>
<input type='text' name='zapis' size='10' onkeyUp='return tableWalk(this);' />



Поправьте плиз паттерн, чтобы больше 1 точки нельзя было вводить. Или подскажите свой вариант скрипта.
Спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 07.02.2012, 09:28
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от boomrest
Перехват события
Это не перехват события, а бред какой-то. Кто вам сказал что у event есть свойство value?
Сообщение от boomrest
Поправьте плиз паттерн, чтобы больше 1 точки нельзя было вводить.
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>

<input />

<script>
$('input').bind('input keyup change', function()  {
    var value = this.value;

    if (/^\.|\d+\..*\.|[^\d\.{1}]/.test(value))
        this.value = value.slice(0,-1);                         
});
</script>


Сообщение от boomrest
Можно без jQuery?
У меня не так много свободного времени чтобы делать кроссбраузерное решение вашей задачи

Последний раз редактировалось monolithed, 07.02.2012 в 09:32.
Ответить с цитированием
  #5 (permalink)  
Старый 25.02.2015, 11:17
Аспирант
Отправить личное сообщение для Lobezki Посмотреть профиль Найти все сообщения от Lobezki
 
Регистрация: 09.09.2014
Сообщений: 48

Здравствуйте! Не удаётся добавить условие: мин 1, макс 4 символа до точки.

if (/^\.|\d{1,4}\..*\.|[^\d\.{1}]/.test(value))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать регулярное выражение! Dorian_bs Общие вопросы Javascript 7 09.12.2011 08:12
Регулярное выражение для проверки URL Beck Events/DOM/Window 13 06.02.2011 08:01
Регулярное выражение для youtube.com Romych Общие вопросы Javascript 10 28.06.2010 21:40
Регулярное выражение для поиска смайлов. NightmareZ Общие вопросы Javascript 13 23.06.2009 13:12
10-ти байтные числа с плавающей точкой serzh44 Общие вопросы Javascript 10 21.04.2008 13:03