Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   регулярные выражения (https://javascript.ru/forum/jquery/49233-regulyarnye-vyrazheniya.html)

yintar 04.08.2014 10:09

регулярные выражения
 
Всем привет.Я не силен в регулярных выражениях,потому прошу помочь.
подскажите ,пожалуйста, как составить регулярное выражение так ,чтобы пользователь мог вводить только цифры и никаких других символов и пробелов
Делаю так var myRegExp = /\D/gi ,но это работает при вводе первого символа т,е, если ввести 5ор то это проходит,а мне надо чтобы в строке могли быть только цифры и все .

Aetae 04.08.2014 10:59

Как ты используешь этот regexp? Где код? Я могу назвать сразу десяток способов проверки приводящих к разным результатам с одним и тем же регом.

yintar 04.08.2014 11:17

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

<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>

рони 04.08.2014 11:36

yintar,
:-?
var myRegExp = /^\d+$/;
 if (myRegExp.test(txt))

yintar 04.08.2014 12:05

Рони большое Вам спасибо.А как теперь сделать так,чтобы если пользователь ввел некорректный символ то его нужно удалить из строки чтобы там остались только цифры

рони 04.08.2014 12:12

yintar,
Цитата:

Сообщение от yintar
остались только цифры

переписать значение используя http://javascript.ru/String/replace
на форуме десятки тем того что вы хотите сделать, но лучше научится делать такое самому

ixth 04.08.2014 18:29

Зачем делать 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>

ОмаЭль 09.12.2014 18:13

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

<form>
<input type="text" pattern="\d+">
<input type="submit" >
</form>

Aetae 09.12.2014 19:23

Печаль в том, что pattern ничего не блокирует и не игнорирует:
<input type="text" pattern="\d+">
Просто ноет, де фигово ввели. Пользы не много.

Deff 09.12.2014 21:50

<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>

krutoy 09.12.2014 22:11

Цитата:

Сообщение от yintar (Сообщение 324173)
Рони большое Вам спасибо.А как теперь сделать так,чтобы если пользователь ввел некорректный символ то его нужно удалить из строки чтобы там остались только цифры

<html>
<head>
</head>
<body>
<input />
<script>
document.querySelector("input").oninput=function(){this.value=this.value.replace(/\D+/g, "")}
</script>
</body>
</html>


Часовой пояс GMT +3, время: 13:04.