Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2014, 10:09
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 04.08.2014
Сообщений: 42

регулярные выражения
Всем привет.Я не силен в регулярных выражениях,потому прошу помочь.
подскажите ,пожалуйста, как составить регулярное выражение так ,чтобы пользователь мог вводить только цифры и никаких других символов и пробелов
Делаю так var myRegExp = /\D/gi ,но это работает при вводе первого символа т,е, если ввести 5ор то это проходит,а мне надо чтобы в строке могли быть только цифры и все .
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2014, 10:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Как ты используешь этот regexp? Где код? Я могу назвать сразу десяток способов проверки приводящих к разным результатам с одним и тем же регом.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2014, 11:17
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 04.08.2014
Сообщений: 42

Пользователь вводит число в текстовое поле и после каждого нажатия клавиши скрипт должен считывать строку и проверять чтобы в ней были только числа без всяких других символов(букв кавычек пробелов и т.д.).
пробовал написать такой скрипт,но я не силен в регулярных выражениях поэтому это не работает.Подскажи,пожалуйс та,как правильно составить такое выражение.

<script type="text/javascript">

$(document).ready(function() {
function check(txt) {
// var myRegExp =

if (txt === /\D/gi )
alert ("Все Ок!");
else
alert ("Некорректное имя!");
}
$('.sumPay').keyup(function() {
check($('.sumPay').val());
});
});

</script>
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2014, 11:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

yintar,

var myRegExp = /^\d+$/;
 if (myRegExp.test(txt))
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2014, 12:05
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 04.08.2014
Сообщений: 42

Рони большое Вам спасибо.А как теперь сделать так,чтобы если пользователь ввел некорректный символ то его нужно удалить из строки чтобы там остались только цифры
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2014, 12:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

yintar,
Сообщение от yintar
остались только цифры
переписать значение используя http://javascript.ru/String/replace
на форуме десятки тем того что вы хотите сделать, но лучше научится делать такое самому
Ответить с цитированием
  #7 (permalink)  
Старый 04.08.2014, 18:29
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Зачем делать replace? Всегда можно отловить введенный символ до того как он добавится в input:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <input type="text" class="sumPay"/>
    <script src="//yandex.st/jquery/1.8.0/jquery.min.js"></script>
    <script>
        $('.sumPay').on('keypress', function (e) {
            var which = String.fromCharCode(e.charCode);
            if (/\D/.test(which)) {
                e.preventDefault();
            }
        });
    </script>
</body>
</html>

Последний раз редактировалось ixth, 04.08.2014 в 18:30. Причина: typo
Ответить с цитированием
  #8 (permalink)  
Старый 09.12.2014, 18:13
Интересующийся
Отправить личное сообщение для ОмаЭль Посмотреть профиль Найти все сообщения от ОмаЭль
 
Регистрация: 11.10.2014
Сообщений: 18

Можно просто заблокировать через pattern =) Но если все таки исправлять неверное по средствам JS, то согласен с предыдущими. =)

<form>
<input type="text" pattern="\d+">
<input type="submit" >
</form>
Ответить с цитированием
  #9 (permalink)  
Старый 09.12.2014, 19:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Печаль в том, что pattern ничего не блокирует и не игнорирует:
<input type="text" pattern="\d+">
Просто ноет, де фигово ввели. Пользы не много.
__________________
29375, 35
Ответить с цитированием
  #10 (permalink)  
Старый 09.12.2014, 21:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<input id="inputScale" type="range" min="20" max="100" step="20" value="15" style="width:156px!important"/>
<div style="word-spacing:16px">20 40 60 80 100</div>

Последний раз редактировалось Deff, 09.12.2014 в 21:54.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения zoinx2010 Общие вопросы Javascript 4 07.02.2014 16:37
регулярные выражения remember_me Общие вопросы Javascript 2 26.12.2013 14:56
Составить регулярные выражения ($) Zero Tolerance Общие вопросы Javascript 10 19.11.2013 13:14
Регулярные выражения для javascript qwert_ukg Общие вопросы Javascript 3 20.04.2012 13:45
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08