Проверка TextBox для ввода специального символа при вводе

У меня есть требование к Textbox . Когда я когда-либо помещаю некоторые значения, должна быть некоторая проверка, чтобы поставить «-» между значениями.

Например, когда я помещаю значение 123456789 в текстовое поле, оно автоматически показывает мне «123-45678-9» или любой другой формат в зависимости от бизнеса. Я без понятия, что делать. Мне нужно показать «-» при вводе значения в текстовое поле.

Любая идея/предложение будет полезно.


person s_k_t    schedule 26.06.2015    source источник
comment
Вы пробовали что-то до сих пор?   -  person Alvaro Flaño Larrondo    schedule 26.06.2015
comment
onKeyPress, вы можете это сделать, после того, сколько символов вам нужно сделать   -  person Narendra Jaggi    schedule 26.06.2015
comment
каждые 3 элемента мне нужно сделать.   -  person s_k_t    schedule 26.06.2015
comment
Сначала прочитайте об обработчике событий .change(): api.jquery.com/change, а затем объедините его с функцией String.match(). w3schools.com/jsref/jsref_match.asp и все готово.   -  person Schlaus    schedule 26.06.2015
comment
Я попробовал это $(document).ready(function(){ $(#autoCompleteID).on(keyup,function(event) { /* Действие по событию */ var value = $(#autoCompleteID).val(); console.log(value);if(value.length==3 || value.length==6){ value = value+-;$(#autoCompleteID).val(value); } }); });   -  person s_k_t    schedule 26.06.2015
comment
но проблема в том, что когда я быстро печатаю, он не работает..   -  person s_k_t    schedule 26.06.2015


Ответы (2)


Пожалуйста, посмотрите на это, настройте его в соответствии с вашими потребностями.

    <!DOCTYPE html>
<html>
<body>

<input type="text" id="myid" onkeyup="myFun()">


<script>
var counter = 0;
function myFun() {

    counter++;
    if(counter==3)
    {
       var value = document.getElementById("myid").value;
       value = value + "-";
       document.getElementById("myid").value = value;
       counter=0;
    }
}
</script>

</body>
</html>
person Narendra Jaggi    schedule 26.06.2015

Это зависит от того, какой тег элемента вы используете.

Если вы используете , вы можете использовать атрибут шаблона и регулярное выражение. Я немного смущен тем, что именно вы хотите; тем не менее, вот пример того, как принимать только такие числа, как 123-45678-9, в точном формате: 3 числа, затем тире, 5 чисел, затем тире и затем одно число.

[0-9]{3}-[0-9]{5}-[0-9]{1} Это говорит о том, что он примет любое число, [0-9], для первых 3 мест, {3} где первое число является минимальным, а потенциальное второе число является максимальным числом последовательных чисел, затем тире, - и т. д., при этом эти правила немного меняются с {5} и {1}.

Однако, если вы хотите включить в свой ввод только тире и цифры, вы можете просто использовать следующее регулярное выражение: «[0-9]|-»

В итоге ваше решение может выглядеть примерно так:

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

person Stanley Liu    schedule 26.06.2015
comment
Извините, я имел в виду [0-9]|\- - person Stanley Liu; 26.06.2015
comment
Требование ввести номер моей учетной записи или кредитную карту в текстовом поле. - person s_k_t; 26.06.2015
comment
Тогда вам нужен очень специфический формат, какой именно формат вам нужен? Дайте мне все форматы, которые вам нужны, и я напишу для вас регулярное выражение. Это пример для кредитной карты: 1234-5678-9012 Ввод будет ‹вводной шаблон=[0-9]{4}\-[0-9]{4}\-[0-9]{4} › - person Stanley Liu; 26.06.2015
comment
Это нормально для меня, но как я могу добавить это к этому. - person s_k_t; 26.06.2015
comment
Что еще нужно добавить? - person Stanley Liu; 27.06.2015
comment
Я говорю о регулярном выражении. Как я могу добавить это регулярное выражение в поле ввода? - person s_k_t; 27.06.2015
comment
Скопируйте и вставьте это: ‹введите шаблон=[0-9]{4}\-[0-9]{4}\-[0-9]{4} › - person Stanley Liu; 27.06.2015