Показывает ввод, который допускает только цифры и десятичную точку? - PullRequest
13 голосов
/ 09 февраля 2012

Есть ли способ определить <input>, который показывает ввод с клавиатуры, который допускает только цифры и десятичную точку (или запятую для международных пользователей)?

<input type='tel'> показывает телефонную чушь, которая мне не нужна, и без десятичной точки
<input type='number' pattern='[0-9]*'> показывает все цифры, но без десятичной точки

Что я могу сделать, чтобы получить нужный мне ввод?

Ответы [ 4 ]

4 голосов
/ 28 мая 2012

Вы можете попробовать этот атрибут в поле type = "number":

pattern="\d+(\.\d*)?"

это разрешит только цифры с / без десятичной точки и плавающие числа справа.

1 голос
/ 31 июля 2015

Посмотрите мой проект кросс-браузерного фильтра значения элемента ввода текста на вашей веб-странице с использованием языка JavaScript: Фильтр ключа ввода .Вы можете отфильтровать значение в виде целого числа, числа с плавающей запятой или написать собственный фильтр, например фильтр телефонных номеров.Смотрите пример кода ввода числа с плавающей точкой

<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Input Key Filter Test</title>
	<meta name="author" content="Andrej Hristoliubov anhr@mail.ru">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	
	<!-- For compatibility of IE browser with audio element in the beep() function.
	https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible -->
	<meta http-equiv="X-UA-Compatible" content="IE=9"/>
	
	<link rel="stylesheet" href="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.css" type="text/css">		
	<script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/Common.js"></script>
	<script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.js"></script>
	
</head>
<body>
	<h1>Float field</h1>
Float field: 
<input id="Float"
	onchange="javascript: onChangeFloat(this)"
	onblur="inputKeyFilter.isNaN(parseFloat(this.value), this);"
/>
<script>
	CreateFloatFilter("Float");
	
	function onChangeFloat(input){
		inputKeyFilter.RemoveMyTooltip();
		var elementNewFloat = document.getElementById("NewFloat");
		var float = inputKeyFilter.parseFloat(input.value);
		if(inputKeyFilter.isNaN(float, input)){
			elementNewFloat.innerHTML = "";
			return;
		}
		elementNewFloat.innerHTML = float + " or localized value: " + float.toLocaleString();
	}
</script>
 New float: <span id="NewFloat"></span>
</body>
</html>

Также см. Мою страницу «Поле с плавающей запятой:» примера фильтра клавиш ввода

0 голосов
/ 01 марта 2017

=> Это позволит только одну десятичную точку (.)

=> Это позволит только трехзначные десятичные значения после точки.Вы можете изменить, изменив на {1,3} ниже RegEx.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  {

        if (!string.length)
            return YES;

        NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
        NSString *expression = @"^([0-9]+)?(\\.([0-9]{1,3})?)?$";
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression
                                                                               options:NSRegularExpressionCaseInsensitive
                                                                                 error:nil];
        NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
                                                            options:0
                                                              range:NSMakeRange(0, [newString length])];
        if (numberOfMatches == 0)
            return NO;


        return YES;

    }
0 голосов
/ 09 февраля 2012

Если бы вы делали это в добросовестном приложении для iOS, вы, вероятно, могли бы добавить свои собственные кнопки поверх клавиатуры, основываясь на этом вопросе , который относится к дополнительному представлению, но тот же процессбудет работать.

В противном случае IamChuckB прав, а пять типов клавиатуры , приведенные в библиотеке разработчика Apple , являются исчерпывающими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...