|
04.08.2014, 10:09
|
Аспирант
|
|
Регистрация: 04.08.2014
Сообщений: 42
|
|
регулярные выражения
Всем привет.Я не силен в регулярных выражениях,потому прошу помочь.
подскажите ,пожалуйста, как составить регулярное выражение так ,чтобы пользователь мог вводить только цифры и никаких других символов и пробелов
Делаю так var myRegExp = /\D/gi ,но это работает при вводе первого символа т,е, если ввести 5ор то это проходит,а мне надо чтобы в строке могли быть только цифры и все .
|
|
04.08.2014, 10:59
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Как ты используешь этот regexp? Где код? Я могу назвать сразу десяток способов проверки приводящих к разным результатам с одним и тем же регом.
__________________
29375, 35
|
|
04.08.2014, 11:17
|
Аспирант
|
|
Регистрация: 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>
|
|
04.08.2014, 11:36
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
yintar,
var myRegExp = /^\d+$/;
if (myRegExp.test(txt))
|
|
04.08.2014, 12:05
|
Аспирант
|
|
Регистрация: 04.08.2014
Сообщений: 42
|
|
Рони большое Вам спасибо.А как теперь сделать так,чтобы если пользователь ввел некорректный символ то его нужно удалить из строки чтобы там остались только цифры
|
|
04.08.2014, 12:12
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
yintar,
Сообщение от yintar
|
остались только цифры
|
переписать значение используя http://javascript.ru/String/replace
на форуме десятки тем того что вы хотите сделать, но лучше научится делать такое самому
|
|
04.08.2014, 18:29
|
|
Профессор
|
|
Регистрация: 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
|
|
09.12.2014, 18:13
|
Интересующийся
|
|
Регистрация: 11.10.2014
Сообщений: 18
|
|
Можно просто заблокировать через pattern =) Но если все таки исправлять неверное по средствам JS, то согласен с предыдущими. =)
<form>
<input type="text" pattern="\d+">
<input type="submit" >
</form>
|
|
09.12.2014, 19:23
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Печаль в том, что pattern ничего не блокирует и не игнорирует:
<input type="text" pattern="\d+">
Просто ноет, де фигово ввели. Пользы не много.
__________________
29375, 35
|
|
09.12.2014, 21:50
|
без статуса
|
|
Регистрация: 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.
|
|
|
|