Ввод JavaScript, который автоматически добавляет '/' к дате - PullRequest
0 голосов
/ 21 октября 2018

Я нашел код ниже, который автоматически добавляет «/» к входу с датой.Мне было интересно, есть ли способ вместо добавления «/» я мог бы добавить «-»?Я не очень хорошо разбираюсь в javascript и буду признателен за любую помощь.

<input id="dob" type="text" onkeyup="getAge()" />

<script type="text/javascript">
function getAge() {
document.getElementById("dob").value=document.getElementById("dob").value.replace(/^(\d\d)(\d)$/g,'$1/$2').replace(/^(\d\d\/\d\d)(\d+)$/g,'$1/$2').replace(/[^\d\/]/g,'');
</script>

1 Ответ

0 голосов
/ 21 октября 2018

Это может быть то, что вы ищете.Я сделал следующие корректировки в вашем исходном коде:

  • использовал переменную для вызова элемента "dob" для сохранения строк кода
  • добавил прослушиватель событий, потому что это предпочтительнее, чем объявлять егов вашем HTML (так скажем, модным разработчикам)
  • изменил событие "keyup" на "keydown", потому что я думаю, что оно более надежно
  • добавил maxlength для ввода, чтобы пользователь не мог добавитьбольше цифр, чем дата должна иметь
  • добавлен заполнитель для ввода, так что пользователь будет знать, какой формат он должен иметь возможность вводить
  • изменил ваш RegEx для поиска - вместо /

NB. Я не добавил проверку ошибок, чтобы удостовериться, что пользователь ввел «реальную» дату (то есть «02-31-2018»), и не будет перехвачен.

var dob = document.getElementById("dob");
dob.addEventListener("keydown", getAge);
function getAge() {
	dob.value = dob.value.replace(/^(\d\d)(\d)$/g,"$1-$2").replace(/^(\d\d\-\d\d)(\d+)$/g,"$1-$2").replace(/[^\d\-]/g,'');
}
<input id="dob" maxlength="10" placeholder="mm-dd-yyyy" type="text" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...